Deploy monitoring tools

Once we have publicly deployed nodes in place (#249), we will need to put in place tools to monitor that everything works correctly. Things like Grafana will allow us to monitor metrics such as (those are examples):

Machine metrics: memory & CPU usage, network bandwidth, ...;
General node health status: Transaction pool size, disk errors, rejected transactions...
General blockchain health data: Deviation from the expected time for blocks, average time from pool to block, etc...

Some  example of what others do:

https://www.lopp.net/bitcoin-information/statistics-metrics.html
https://bitnodes.io/
https://ethernodes.org/
https://ethstats.net/

We have most of that covered, and whatever's left should be opened as a separate issue in infrastructure.


Test if Github projects can work for the team

Checks we need to make

[ ] Can we have a dedicated link for each issue

There is a Copy Link that can be used to copy the link of an issue https://github.com/gov-cy/dsf-ui-testing/issues/3 but it needs to connected to a Repository

[x] Can we have assignees?
[x] Can we add custom fields (that can be used in filter) i.e. discipline, goal
[x] Can we filter?
[x] Can we have a repository connected to an issue
[ ] Can we have a pull request / commit / merge connected with an issue
[ ] Can we connect issues ?
[ ] Can we view history of issues ?
[ ] Can we revert to previous state or undo change?
[x] Can we view issues as a Board?

This is a comment
let someComment = 'this is a comment';

can only have history if it is converted into an issue


Expression produces a union type that is too complex to represent when using O.Writable with version 6.10

Using TS 3.9.6 and ts-toolbelt 6.10.11 the following breaks
It compiles ok in v6.9.9
function test2<T>(object: T, propName: keyof T) {
}

function test<M extends object>() {
  const m: O.Writable<M> = null as any

  test2(m, "x") // Expression produces a union type that is too complex to represent.ts(2590)
}

Note that this is just the smallest code I could come up with, that shows the issue not the actual code.

@xaviergonz it's fixed

Awesome, thanks!


Switch to using JS for all consent settings

Getting a SyntaxError: Unexpected token ':'. Expected a ';' following a class field. error

Pushed up some fixes

Updated now, you can see it on the exitex dev home page

I always, ALWAYS, forget the bind.


Update buildpack_app_lifecycle and convert to go-yaml

Go-Yaml now contains this bug fix: https://github.com/go-yaml/yaml/issues/75

Nice! Thanks, @dgodd, prioritizing for the team to evaluate and pull in.
Best,
Eric

Oh, @dgodd, we think the submodules and packaging changes are slightly wrong in the release, since the yaml package import path should be gopkg.in/yaml.v2 everywhere. We have that already as a submodule in diego-release, but it would need to be bumped to the latest v2 branch head. The BPAL import paths look fine, though.
Thanks,
Eric

Thanks @ematpl . I've changed the PR

Sweet, thanks, @dgodd !


save method doesn't return document version

When method save is invoked on repository parameterized with versioned document it's expected that returned document will contain not null versioned field.
Class SimpleAerospikeRepository contains following:
  @Override
public <S extends T> S save(S entity) {
	Assert.notNull(entity, "Cannot save NULL entity");

	operations.save(entity);
	return entity;                            <-- **returns not saved entity**
}

Version is set on the same entity, so the code is correct.
Please take a look at the following test: https://github.com/aerospike-community/spring-data-aerospike/blob/master/src/test/java/org/springframework/data/aerospike/core/AerospikeTemplateSaveTests.java#L56
It validates the flow you're talking about. Can you please share your test case?

In test you use object of sample VersionedClass. But definition of class containes version field as primitive. not an object. Consequently when you instantiate this object with constructor new VersionedClass(id, "foo") this field has default value equal to 0. In my document I have version field as Long (don't ask why, I'll review this decision), so when save is called this field is set to null.


Roll Engine from 94786ae707df to 8989f3cb25ad (1 revision)

https://github.com/flutter/engine/compare/94786ae707df...8989f3cb25ad
2022-01-10<EMAIL_ADDRESS>Roll Fuchsia Mac SDK from FeIAsJOa_... to kNTHPjiPP... (flutter/engine#30757)
Also rolling transitive DEPS:
fuchsia/sdk/core/mac-amd64 from FeIAsJOa_9oH to kNTHPjiPPCaq
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Wait for snapshot to be ready before restoring

This is a temporary fix for the upstream issue at https://github.com/vmware-tanzu/velero/issues/1799
The long-term fix upstream will replace this when it's released. This adds another config parameter for the AWS Volume Snapshot plugin: "snapshotCreationTimeout"

Closing -- going to reopen it against the fusor-1.1 release  branch.


Revert "HWKAGENT-19 monitor JMX resources/metrics via Jolokia"

Reverts hawkular/hawkular-agent#81

opps... let me revert and try that again


Update to Schema version 1.0.0

@cascadianblue I'll review when the checks are successful

@tschaffter fixed! Sorry


Reorganize version categories to only include major versions

This changes version headers to only include major versions and reorganizes items accordingly, as proposed in #343.
Most version information given in parentheses has been removed. But plugins/scripts and modules that support 2 major versions (such as Godot 3 and Godot 4) still make this note in parentheses and italics: (Godot 3 and 4). The idea is that this kind of parenthetical note is only given for information that is exceptional to what the headers imply. It's italicized to make it easy to notice that the Godot 4 section contains items that support Godot 3 too. I think the italics clarify this strongly enough that I did not have to add the explicit clarifying statement "(Sorted by latest compatible major Godot version.)" next to the header, which I previously proposed. This explicit statement is only in CONTRIBUTING.md.
I'm satisfied that this is an improvement, but it now occurs to me that parenthetical version information could be removed entirely with what might be a better system. This would be to, for plugins/scripts and modules only, use the headers "Godot 4 only", "Godot 3 only", and "Godot 3 and 4". I think this would be a further improvement, but it's more unclear and involves a tradeoff. I can modify the PR to do this, or it can be merged without it.
Benefits of this further change:

It removes ambiguity.
It cleans up asset descriptions and makes the list less noisy to scan.
It's self-documenting enough that CONTRIBUTING.md can remove the clarification, making it simpler to contribute.

Downsides:

It's less flexible to include other information, if that is desired in the future.
It removes symmetry by not using the same headers in different sections, making the list less pretty.
People who only care about the newest version will be slightly inconvenienced for having to look through two sections instead of one. (My guess is that this is the majority of people.)

Example
Plugins and scripts
Scripts that let you do new stuff, or enhance Godot functionality.
Godot 4 Only

Plugin A - asdf.
Plugin B - asdf.

Godot 3 and 4

Plugin C - asdf.
Plugin D - asdf.

Godot 3 Only

Plugin E - asdf.
Plugin F - asdf.

In case I wasn't clear, I'm ready to merge this. I won't do the "further improvement" right now because it's not clear to me that it would really be an improvement.


Guidelines for Extending CCD Library

Hi there!
I’m working with the CCD library, and I was wondering if you could provide some guidelines or documentation on how this pickle file was originally generated. This would be very valuable for extending the library to custom residues.
I’ve encountered a problem: when I load the CCD library pickle and then immediately dump it again (even without making any modifications), the atom-level properties (e.g., atom.GetProp("name")) are lost in the newly created pickle file. The mapping from AminoAcid (string) → Molecule (RDKit) is preserved, but per-atom properties are not.
Below is a simple reproducible example:
import pickle
import sys

print('Python Version:', sys.version) # Python Version: 3.13.0 | packaged by conda-forge | (main, Oct  8 2024, 20:04:32) [GCC 13.3.0]

ccd_lib_file = '/path/to/downloaded/pickle/file/ccd.pkl'
ccd_lib_modified_file = '/path/to/newly/created/pickle/file/ccd_mod.pkl'

ccd_lib = pickle.load(open(ccd_lib_file, 'rb'))
print([atom.GetProp("name") for atom in ccd_lib["GLY"].GetAtoms()]) # ['N', 'CA', 'C', 'O', 'OXT', 'H', 'H2', 'HA2', 'HA3', 'HXT']
pickle.dump(ccd_lib, open(ccd_lib_modified_file, 'wb'))

# Sanity check
ccd_lib = pickle.load(open(ccd_lib_modified_file, 'rb'))
print([atom.GetProp("name") for atom in ccd_lib["GLY"].GetAtoms()]) # Key Error: 'name'

I also tried making a deepcopy before dumping, but the properties still vanish.
Questions:

Could you provide any details on how the ccd.pkl was created?
Is there a recommended approach to preserve these atom-level properties when re-pickling the data?

Thank you in advance for your help!

I believe you need to run this line after loading rdkit.
Chem.SetDefaultPickleProperties(Chem.PropertyPickleOptions.AllProps)

I wrote a notebook for adding to the CCD for general covalent modifications here: https://github.com/benf549/boltz-generalized-covalent-modification/blob/main/boltz_generalized_covalent_inference.ipynb and ran in to the same issue with loading and saving the cached ccd without this line.

Thank you very much!


Fix docker staticfiles

Origin copy of PR #810 by @cryptoteun.

Codecov Report

Merging #811 (3a4d4ae) into main (19fda31) will decrease coverage by 0.00%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #811      +/-   ##
==========================================
- Coverage   41.45%   41.44%   -0.01%
==========================================
  Files         215      215
  Lines       11271    11271
==========================================
- Hits         4672     4671       -1
- Misses       6599     6600       +1

Impacted Files
Coverage Δ

lnbits/extensions/bleskomat/models.py
86.79% <0.00%> (-0.95%)
:arrow_down:

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


main: reference to nonexistent package os

What version of Go are you using (go version)?

Yes
What operating system and processor architecture are you using (go env)?
go env Output
sandbox# go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/root/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/root/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/opt/go-1.17.6"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/opt/go-1.17.6/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.17.6"
GCCGO="/usr/bin/gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/root/hello/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build3390657096=/tmp/go-build -gno-record-gcc-switches"

What did you do?
Followed the Go tutorial from Go website: https://go.dev/doc/tutorial/getting-started
I went as far as step 5 (creating hello.go).
When I tried to do step 6 (run go program: go run .), I encounter the error.
What did you expect to see?
The hello.go program to run and show the text "Hello world!" on console.
What did you see instead?
The following error:

# example/hello
2022/01/08 15:48:06 main: reference to nonexistent package os
sandbox#

Unlike many projects, the Go project does not use GitHub Issues for general discussion or asking questions. GitHub Issues are used for tracking bugs and proposals only.
For questions please refer to https://github.com/golang/go/wiki/Questions

Wow.
First and foremost, I am not asking questions.

I downloaded Go from official distribution.
I followed installation method from the official Go website.
I followed steps from the official Go tutorial documentation.
I get an error message compiling a "hello world" program.

Elsewhere in the world, this would be considered as a product defect.
Either int the software, or documentation, or both.
And that's what I'm reporting.
And your first response is to close this issue, because you think I'm just asking questions?
Unbelievable.

It does seems unlikely that a Hello world (and thus probably every Go program in existence) was broken in go1.17 and nobody noticed before. My guess is that either you made a mistake when following the tutorial steps, or (more likely) your Go installation is broken in some way.
The only other instance (applicable to go 1.17) of that error is in #48565. In that issue, the OP messed with the .a files of the Go standard library, and thus every Go program was broken on importing these files.
 Or in general, you could try to nuke your installation and re-install Go.

Thank you for the more sympathetic response. Really appreciate it.

It does seems unlikely that a Hello world (and thus probably every Go program in existence) was broken in go1.17 and nobody noticed before.

Indeed. Which was why I was concerned enough to raise the ticket.

My guess is that either you made a mistake when following the tutorial steps, or (more likely) your Go installation is broken in some way.
The only other instance (applicable to go 1.17) of that error is in #48565. In that issue, the OP messed with the .a files of the Go standard library, and thus every Go program was broken on importing these files.

I saw the error message shown by #48565 when I was attempting to build a much more complex app. I thought it was the app's problem, but to help to isolate the problem, I tried the hello world program - and was surprised that it was similarly affected.
However, not having enough knowledge about Go's internal and external modules, I failed to see the connection between the similar errors (In other languages, "non-existent reference" at link time meant missing shared libraries etc, but I found it hard-to-believe that a core library like "os" could be missing). Hence my concern.

 Or in general, you could try to nuke your installation and re-install Go.

Thank you. This gives me the clue that I need.
My Go installation is broken. The OS package management automatically strip .a files, assuming that they are standard libraries, behind my back. After re-installing and making sure it does not do this, the compilation process works normally and the hello world program works.
Perhaps a suggestion for future version is not to use .a file extension because of its existing meaning.
Most importantly, however, thank you @ALTree for spending the time and effort to reply to a bug report properly. We need more people like you.

Nice, and thanks for following up; having an explanation archived here will help people that may encounter the same error in the future.


It does not seem to be working with Neo4J

When you run the canonical code from: https://github.com/CosmicDNA/neo4j-graphql-example-nextjs/tree/5385e091ce68004de94bda184c940e69a09c7dee,
with yarn run dev and go to /api/graphql path, the following error is thrown:
 ⨯ Error: Cannot use GraphQLNonNull "String!" from another module or realm.

Ensure that there is only one instance of "graphql" in the node_modules
directory. If different versions of "graphql" are the dependencies of other
relied on modules, use "resolutions" to ensure only one version is installed.

https://yarnpkg.com/en/docs/selective-version-resolutions

Duplicate "graphql" modules cannot be used at the same time since different
versions may have different capabilities and behavior. The data from one
version used in the function from another could produce confusing and
spurious results.

For your reference, this code is based on https://github.com/CosmicDNA/neo4j-graphql-example and which is a GraphQL server without Nextjs where everything works as intended.

Have you tried adding graphql to your package.json? As is done here: https://github.com/CosmicDNA/neo4j-graphql-example/blob/d42de8bb7abe6beb32bc61116b779cc66167e4a4/package.json#L16

Have you tried adding graphql to your package.json? As is done here: https://github.com/CosmicDNA/neo4j-graphql-example/blob/d42de8bb7abe6beb32bc61116b779cc66167e4a4/package.json#L16

I just tested adding<EMAIL_ADDRESS>but the same problem still persists...

I see, then maybe using resolutions to pin the version of graphql might work?

I see, then maybe using resolutions to pin the version of graphql might work?

I just tried with
"resolutions": {
    "graphql": "16.9.0"
}

And the same problem still occurred.
The same problem is also happening with the code from here. It is based on https://portal.gitnation.org/contents/full-stack-graphql-in-the-cloud-with-neo4j-aura-nextjs-and-vercel and does not use @as-integrations/next.

This problem may be associated with: https://github.com/apollographql/apollo-server/issues/4637

I found out that if instead of using NextJs 13+ API route handlers, if I use pages, it works as expected. The working code is this one. This indicates that the bug might reside within @as-integrations/next because it currently only working for the case where the handler is used with regular NextJs pages/api.

Hi @DanielAtCosmicDNA removing --turbo flag helped me get rid of this error which you too are facing.


Manual engine roll

Drafting a manual takeover of https://github.com/flutter/flutter/pull/150458, to see if re-generating all the lockfiles will fix the problems with the roll.
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[ ] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making, or this PR is test-exempt.
[x] I followed the breaking change policy and added Data Driven Fixes where supported.
[ ] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Looks like there is just one failing test, the test that builds flutter_gallery. It fails because it looks like it uses the long abandoned connectivity plugin, which is causing issues using a newer version of kotlin (see below). I'm going to revert the engine pr to unblock the tree for now, I'll get back to this on Thursday.
e: /Users/mackall/.gradle/caches/transforms-3/f8398ed3fa54949091eb50467f44e5d0/transformed/fragment-1.7.1/jars/classes.jar!/META-INF/fragment_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/transforms-3/cee6235b5182d8623c2f493b50c52d2f/transformed/jetified-activity-1.8.1/jars/classes.jar!/META-INF/activity_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/transforms-3/e0846fd97fa82d7b5b28ecfadb5f5f38/transformed/jetified-lifecycle-livedata-core-ktx-2.7.0/jars/classes.jar!/META-INF/lifecycle-livedata-core-ktx_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/transforms-3/b75898eeedaab4dd4de3106c47d7ecb6/transformed/lifecycle-livedata-2.7.0/jars/classes.jar!/META-INF/lifecycle-livedata_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/transforms-3/dcab027b668c0cf53d2628a2143722c7/transformed/lifecycle-viewmodel-2.7.0/jars/classes.jar!/META-INF/lifecycle-viewmodel_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/transforms-3/1f30b1fd1a92485717fdee20c8d3934a/transformed/lifecycle-livedata-core-2.7.0/jars/classes.jar!/META-INF/lifecycle-livedata-core_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/transforms-3/5fc0ba14e37d9a96690bfea89c85feb6/transformed/jetified-lifecycle-viewmodel-savedstate-2.7.0/jars/classes.jar!/META-INF/lifecycle-viewmodel-savedstate_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/transforms-3/959309a14ec71e1ccf3331bbb2edccf7/transformed/jetified-core-ktx-1.13.1/jars/classes.jar!/META-INF/core-ktx_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/transforms-3/54de3efc20d799f799ab95be5557ab5d/transformed/core-1.13.1/jars/classes.jar!/META-INF/core_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/transforms-3/0a26bf8e06713a82b672be6c57cc4bbd/transformed/lifecycle-runtime-2.7.0/jars/classes.jar!/META-INF/lifecycle-runtime_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/transforms-3/33057d18460d69400a090cc5ef9ec623/transformed/jetified-lifecycle-process-2.7.0/jars/classes.jar!/META-INF/lifecycle-process_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/modules-2/files-2.1/androidx.lifecycle/lifecycle-common/2.7.0/85334205d65cca70ed0109c3acbd29e22a2d9cb1/lifecycle-common-2.7.0.jar!/META-INF/lifecycle-common.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/transforms-3/d33b36de1b4d960e35415f5d104ed327/transformed/jetified-savedstate-1.2.1/jars/classes.jar!/META-INF/savedstate_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/transforms-3/df40dcea92ee965ace275571c993ccb2/transformed/jetified-window-1.2.0/jars/classes.jar!/META-INF/window_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/transforms-3/4e2e0913e99255ea30da7fdd80bd48f9/transformed/jetified-window-java-1.2.0/jars/classes.jar!/META-INF/window-java_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core-jvm/1.7.1/63a0779cf668e2a47d13fda7c3b0c4f8dc7762f4/kotlinx-coroutines-core-jvm-1.7.1.jar!/META-INF/kotlinx-coroutines-core.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-android/1.7.1/c2d86b569f10b7fc7e28d3f50c0eed97897d77a7/kotlinx-coroutines-android-1.7.1.jar!/META-INF/kotlinx-coroutines-android.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.8.22/636bf8b320e7627482771bbac9ed7246773c02bd/kotlin-stdlib-1.8.22.jar!/META-INF/kotlin-stdlib-jdk7.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.8.22/636bf8b320e7627482771bbac9ed7246773c02bd/kotlin-stdlib-1.8.22.jar!/META-INF/kotlin-stdlib.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.8.22/636bf8b320e7627482771bbac9ed7246773c02bd/kotlin-stdlib-1.8.22.jar!/META-INF/kotlin-stdlib-jdk8.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.8.22/1a8e3601703ae14bb58757ea6b2d8e8e5935a586/kotlin-stdlib-common-1.8.22.jar!/META-INF/kotlin-stdlib-common.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':connectivity:verifyReleaseResources'.
> A failure occurred while executing com.android.build.gradle.tasks.VerifyLibraryResourcesTask$Action
   > Android resource linking failed
     ERROR:/Users/mackall/development/flutter/flutter/dev/integration_tests/flutter_gallery/build/connectivity/intermediates/merged_res/release/values/values.xml:194: AAPT: error: resource android:attr/lStar not found.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 53s
Running Gradle task 'assembleRelease'...                           53.7s

┌─ Flutter Fix ─────────────────────────────────────────────────────────────────────────────────────────────┐
│ [!] Your project requires a newer version of the Kotlin Gradle plugin.                                    │
│ Find the latest version on https://kotlinlang.org/docs/releases.html#release-details, then update the     │
│ version number of the plugin with id "org.jetbrains.kotlin.android" in the plugins block of               │
│ /Users/mackall/development/flutter/flutter/dev/integration_tests/flutter_gallery/android/settings.gradle. │
│                                                                                │
│ Alternatively (if your project was created before Flutter 3.19), update                                   │
│ /Users/mackall/development/flutter/flutter/dev/integration_tests/flutter_gallery/android/build.gradle     │
│ ext.kotlin_version = '<latest-version>'                                                                   │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────┘

I think I remember this issue as being related to the compileSdk in the plugin being <33.

FWIW the google testing bug looks unrelated.

This is indeed caused by the fact that flutter_gallery uses a number of long discontinued plugins that themselves use compileSdk version <31.
Reference b/213599629


Disabling keyboard navigation and selecting a date from the browser's dropdown menu causes a return key press to clear the date

Steps to reproduce

Find a datepicker text field which has dates in the browser's dropdown menu history.
Set up the datepicker plugin on that text field with the following options:

{ "keyboardNavigation": false }

Click on the text field.
Press the down arrow key. You should see at least one valid date.
Select a valid date. The browser's dropdown should close, and the datepicker plugin should still be open.
Press return.

Expected behavior
The plugin closes and leaves the date in the input field alone. The form might also be submitted.
Actual behavior
The input field is emptied (and still focused), the form is not submitted, and the plugin stays open with no date selected.

@nicolasmccurdy Same here - did you ever figure this one out?


go vulnerability scan

Initial work on #889
Signed-off-by: Mohammad Shehar Yaar Tausif<EMAIL_ADDRESS>

Is the changes to makefile sufficient? After makefile, I will make changes to GH actions

Made the changes to Makefile

Codecov Report

Merging #899 (809dd1a) into main (c4495f3) will decrease coverage by 3.40%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #899      +/-   ##
==========================================
- Coverage   38.92%   35.51%   -3.41%
==========================================
  Files          31       31
  Lines        9707     9707
==========================================
- Hits         3778     3447     -331
- Misses       5424     5786     +362
+ Partials      505      474      -31

Impacted Files
Coverage Δ

KubeArmor/core/crioHandler.go
0.00% <0.00%> (-63.87%)
:arrow_down:

KubeArmor/core/containerdHandler.go
3.33% <0.00%> (-53.71%)
:arrow_down:

KubeArmor/core/kubeArmor.go
46.46% <0.00%> (-3.54%)
:arrow_down:

KubeArmor/monitor/processTree.go
93.01% <0.00%> (-2.69%)
:arrow_down:

KubeArmor/common/common.go
42.47% <0.00%> (-0.78%)
:arrow_down:

KubeArmor/core/kubeUpdate.go
35.90% <0.00%> (-0.41%)
:arrow_down:

KubeArmor/feeder/policyMatcher.go
40.91% <0.00%> (-0.35%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@kranurag7 any more changes required in the Makefile?

@sheharyaar , any updates on this?
One question, after running make scan with the PRs updated Makefile, do you see any issues reported that needs to be handled? Or is the report clean?

The report was clean after running make scan. I will update the PR as suggested by kanurag7.

@nyrahul after running govulncheck today, I got multiple informational vulnerabilities. Should I create a new Issue or just send them here.

Placing govulncheck in ci-test-go would cause action to fail even on informational vulnerabilities.

Placing govulncheck in ci-test-go would cause action to fail even on informational vulnerabilities.

Can you attach the make scan report here in the issue?

Attached to the following link : govulnscan.log
go install golang.org/x/vuln/cmd/govulncheck@latest ;\
cd /home/wazir/workspace/playground/temp/KubeArmor/KubeArmor;\
govulncheck -v ./... ;\
cd /home/wazir/workspace/playground/temp/KubeArmor/KubeArmor/BPF/tests;\
govulncheck -v ./... ;\
cd /home/wazir/workspace/playground/temp/KubeArmor/KubeArmor/../deployments;\
govulncheck -v ./... ;\
cd /home/wazir/workspace/playground/temp/KubeArmor/KubeArmor/../pkg/KubeArmorAnnotation ;\
govulncheck -v ./... ;\
cd /home/wazir/workspace/playground/temp/KubeArmor/KubeArmor/../pkg/KubeArmorController ;\
govulncheck -v ./... ;\
cd /home/wazir/workspace/playground/temp/KubeArmor/KubeArmor/../pkg/KubeArmorHostPolicy ;\
govulncheck -v ./... ;\
cd /home/wazir/workspace/playground/temp/KubeArmor/KubeArmor/../pkg/KubeArmorPolicy ;\
govulncheck -v ./... ;\

govulncheck is an experimental tool. Share feedback at https://go.dev/s/govulncheck-feedback.

Scanning for dependencies with known vulnerabilities...
Found 2 known vulnerabilities.

Vulnerability #1: GO-2022-1095
  Due to unsanitized NUL values, attackers may be able to
  maliciously set environment variables on Windows. In
  syscall.StartProcess and os/exec.Cmd, invalid environment
  variable values containing NUL values are not properly checked
  for. A malicious environment variable value can exploit this
  behavior to set a value for a different environment variable.
  For example, the environment variable string "A=B\x00C=D" sets
  the variables "A=B" and "C=D".

  Call stacks in your code:
      #1: for function Cmd.CombinedOutput
        github.com/kubearmor/KubeArmor/KubeArmor/common.GetCommandOutputWithoutErr
            common/common.go:257:32
        os/exec.Cmd.CombinedOutput
      #2: for function Cmd.Run
        github.com/kubearmor/KubeArmor/KubeArmor/core.KubeArmorDaemon.WatchDefaultPosture
            core/kubeUpdate.go:2475:2
        k8s.io/client-go/informers.sharedInformerFactory.Start
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/informers/factory.go:134:4
        k8s.io/client-go/tools/cache.sharedIndexInformer.Run
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/tools/cache/shared_informer.go:443:18
        k8s.io/client-go/tools/cache.controller.Run
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/tools/cache/controller.go:155:12
        k8s.io/apimachinery/pkg/util/wait.Until
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/wait/wait.go:92:13
        k8s.io/apimachinery/pkg/util/wait.JitterUntil
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/wait/wait.go:135:14
        k8s.io/apimachinery/pkg/util/wait.BackoffUntil
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/wait/wait.go:158:4
        k8s.io/apimachinery/pkg/util/wait.BackoffUntil$1
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/wait/wait.go:157:5
        k8s.io/client-go/transport.dynamicClientCert.runWorker
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/transport/cert_rotation.go:151:27
        k8s.io/client-go/transport.dynamicClientCert.processNextWorkItem
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/transport/cert_rotation.go:162:28
        k8s.io/client-go/transport.dynamicClientCert.loadClientCert
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/transport/cert_rotation.go:65:23
        k8s.io/client-go/transport.TLSConfigFor$1
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/transport/transport.go:119:31
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.cert
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:364:26
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.getCreds
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:379:32
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.refreshCredsLocked
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:435:15
        os/exec.Cmd.Run
      #3: for function Cmd.Start
        github.com/kubearmor/KubeArmor/KubeArmor/common.RunCommandAndWaitWithErr
            common/common.go:269:21
        os/exec.Cmd.Start
          There are 526 more call stacks available.
      To see all of them, pass the -json flags.

  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-1095

Vulnerability #2: GO-2022-1039
  Programs which compile regular expressions from untrusted
  sources may be vulnerable to memory exhaustion or denial of
  service. The parsed regexp representation is linear in the size
  of the input, but in some cases the constant factor can be as
  high as 40,000, making relatively small regexps consume much
  larger amounts of memory. After fix, each regexp being parsed is
  limited to a 256 MB memory footprint. Regular expressions whose
  representation would use more space than that are rejected.
  Normal use of regular expressions is unaffected.

  Call stacks in your code:
      #1: for function Parse
        github.com/kubearmor/KubeArmor/KubeArmor/feeder.Feeder.UpdateHostSecurityPolicies
            feeder/policyMatcher.go:637:37
        regexp.Compile
            /usr/local/go/src/regexp/regexp.go:137:16
        regexp.compile
            /usr/local/go/src/regexp/regexp.go:174:25
        regexp/syntax.Parse
          There are 413 more call stacks available.
      To see all of them, pass the -json flags.

  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-1039

Vulnerability #3: GO-2022-1095
  Due to unsanitized NUL values, attackers may be able to
  maliciously set environment variables on Windows. In
  syscall.StartProcess and os/exec.Cmd, invalid environment
  variable values containing NUL values are not properly checked
  for. A malicious environment variable value can exploit this
  behavior to set a value for a different environment variable.
  For example, the environment variable string "A=B\x00C=D" sets
  the variables "A=B" and "C=D".

  Call stacks in your code:
      #1: for function StartProcess
        github.com/kubearmor/KubeArmor/KubeArmor/common.RunCommandAndWaitWithErr
            common/common.go:269:21
        os/exec.Cmd.Start
            /usr/local/go/src/os/exec/exec.go:524:34
        os.StartProcess
            /usr/local/go/src/os/exec.go:109:21
        os.startProcess
            /usr/local/go/src/os/exec_posix.go:54:35
        syscall.StartProcess
          There are 246 more call stacks available.
      To see all of them, pass the -json flags.

  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-1095

=== Informational ===

The vulnerabilities below are in packages that you import, but your code
doesn't appear to call any vulnerable functions. You may not need to take any
action. See https://pkg.go.dev/golang.org/x/vuln/cmd/govulncheck
for details.

Vulnerability #1: GO-2022-1038
  Requests forwarded by ReverseProxy include the raw query parameters from the inbound request, including unparseable parameters rejected by net/http. This could permit query parameter smuggling when a Go proxy forwards a parameter with an unparseable value.

  After fix, ReverseProxy sanitizes the query parameters in the forwarded query when the outbound request's Form field is set after the ReverseProxy. Director function returns, indicating that the proxy has parsed the query parameters. Proxies which do not parse query parameters continue to forward the original query parameters unchanged.
  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-1038

Vulnerability #2: GO-2022-0988
  JoinPath and URL.JoinPath do not remove ../ path elements appended to a relative path. For example, JoinPath("https://go.dev", "../go") returns the URL "https://go.dev/../go", despite the JoinPath documentation stating that ../ path elements are removed from the result.
  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-0988

Vulnerability #3: GO-2022-0969
  HTTP/2 server connections can hang forever waiting for a clean shutdown that was preempted by a fatal error. This condition can be exploited by a malicious client to cause a denial of service.
  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-0969
govulncheck is an experimental tool. Share feedback at https://go.dev/s/govulncheck-feedback.

Scanning for dependencies with known vulnerabilities...
No vulnerabilities found.

=== Informational ===

The vulnerabilities below are in packages that you import, but your code
doesn't appear to call any vulnerable functions. You may not need to take any
action. See https://pkg.go.dev/golang.org/x/vuln/cmd/govulncheck
for details.

Vulnerability #1: GO-2022-1095
  Due to unsanitized NUL values, attackers may be able to maliciously set environment variables on Windows.

  In syscall.StartProcess and os/exec.Cmd, invalid environment variable values containing NUL values are not properly checked for. A malicious environment variable value can exploit this behavior to set a value for a different environment variable. For example, the environment variable string "A=B\x00C=D" sets the variables "A=B" and "C=D".
  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-1095

Vulnerability #2: GO-2022-0493
  When called with a non-zero flags parameter, the Faccessat function can incorrectly report that a file is accessible.
  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-0493
govulncheck is an experimental tool. Share feedback at https://go.dev/s/govulncheck-feedback.

Scanning for dependencies with known vulnerabilities...
Found 1 known vulnerability.

Vulnerability #1: GO-2022-1039
  Programs which compile regular expressions from untrusted
  sources may be vulnerable to memory exhaustion or denial of
  service. The parsed regexp representation is linear in the size
  of the input, but in some cases the constant factor can be as
  high as 40,000, making relatively small regexps consume much
  larger amounts of memory. After fix, each regexp being parsed is
  limited to a 256 MB memory footprint. Regular expressions whose
  representation would use more space than that are rejected.
  Normal use of regular expressions is unaffected.

  Call stacks in your code:
      #1: for function Parse
        github.com/kubearmor/KubeArmor/deployments.init
            main.go:16:2
        sigs.k8s.io/yaml.init
            /home/wazir/go/pkg/mod/sigs.k8s.io/yaml@v1.3.0/yaml.go:11:2
        gopkg.in/yaml.v2.init
            /home/wazir/go/pkg/mod/gopkg.in/yaml.v2@v2.4.0/resolve.go:84:40
        regexp.MustCompile
            /usr/local/go/src/regexp/regexp.go:317:24
        regexp.Compile
            /usr/local/go/src/regexp/regexp.go:137:16
        regexp.compile
            /usr/local/go/src/regexp/regexp.go:174:25
        regexp/syntax.Parse
          There are 17 more call stacks available.
      To see all of them, pass the -json flags.

  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-1039

=== Informational ===

The vulnerabilities below are in packages that you import, but your code
doesn't appear to call any vulnerable functions. You may not need to take any
action. See https://pkg.go.dev/golang.org/x/vuln/cmd/govulncheck
for details.

Vulnerability #1: GO-2022-1095
  Due to unsanitized NUL values, attackers may be able to maliciously set environment variables on Windows.

  In syscall.StartProcess and os/exec.Cmd, invalid environment variable values containing NUL values are not properly checked for. A malicious environment variable value can exploit this behavior to set a value for a different environment variable. For example, the environment variable string "A=B\x00C=D" sets the variables "A=B" and "C=D".
  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-1095

Vulnerability #2: GO-2022-0988
  JoinPath and URL.JoinPath do not remove ../ path elements appended to a relative path. For example, JoinPath("https://go.dev", "../go") returns the URL "https://go.dev/../go", despite the JoinPath documentation stating that ../ path elements are removed from the result.
  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-0988

Vulnerability #3: GO-2022-0969
  HTTP/2 server connections can hang forever waiting for a clean shutdown that was preempted by a fatal error. This condition can be exploited by a malicious client to cause a denial of service.
  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-0969
govulncheck is an experimental tool. Share feedback at https://go.dev/s/govulncheck-feedback.

Scanning for dependencies with known vulnerabilities...
Found 3 known vulnerabilities.

Vulnerability #1: GO-2022-0969
  HTTP/2 server connections can hang forever waiting for a clean
  shutdown that was preempted by a fatal error. This condition can
  be exploited by a malicious client to cause a denial of service.

  Call stacks in your code:
      #1: for function Server.Serve
        github.com/kubearmor/KubeArmor/pkg/KubeArmorAnnotation.main
            main.go:101:21
        sigs.k8s.io/controller-runtime/pkg/manager.controllerManager.Start
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/manager/internal.go:445:18
        sigs.k8s.io/controller-runtime/pkg/manager.controllerManager.serveMetrics
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/manager/internal.go:337:2
        sigs.k8s.io/controller-runtime/pkg/manager.controllerManager.httpServe
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/manager/internal.go:361:2
        sigs.k8s.io/controller-runtime/pkg/manager.httpServe$1
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/manager/internal.go:363:25
        net/http.Server.Serve
          There are 13 more call stacks available.
      To see all of them, pass the -json flags.

  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-0969

Vulnerability #2: GO-2022-1095
  Due to unsanitized NUL values, attackers may be able to
  maliciously set environment variables on Windows. In
  syscall.StartProcess and os/exec.Cmd, invalid environment
  variable values containing NUL values are not properly checked
  for. A malicious environment variable value can exploit this
  behavior to set a value for a different environment variable.
  For example, the environment variable string "A=B\x00C=D" sets
  the variables "A=B" and "C=D".

  Call stacks in your code:
      #1: for function Cmd.Output
        github.com/kubearmor/KubeArmor/pkg/KubeArmorAnnotation/controllers.PodRefresherReconciler.Reconcile
            controllers/pod-refresh.go:38:23
        sigs.k8s.io/controller-runtime/pkg/client.client.Delete
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/client/client.go:213:30
        sigs.k8s.io/controller-runtime/pkg/client.typedClient.Delete
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/client/typed_client.go:88:5
        k8s.io/client-go/rest.Request.Do
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/rest/request.go:924:18
        k8s.io/client-go/rest.Request.request
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/rest/request.go:883:25
        net/http.Client.Do
            /usr/local/go/src/net/http/client.go:581:13
        net/http.Client.do
            /usr/local/go/src/net/http/client.go:715:36
        net/http.Client.send
            /usr/local/go/src/net/http/client.go:175:30
        net/http.send
            /usr/local/go/src/net/http/client.go:251:26
        golang.org/x/oauth2.Transport.RoundTrip
            /home/wazir/go/pkg/mod/golang.org/x/oauth2@v0.0.0-20220822191816-0ebed06d0094/transport.go:45:30
        k8s.io/client-go/plugin/pkg/client/auth/gcp.cachedTokenSource.Token
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/gcp/gcp.go:225:28
        k8s.io/client-go/plugin/pkg/client/auth/gcp.commandTokenSource.Token
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/gcp/gcp.go:307:27
        os/exec.Cmd.Output
      #2: for function Cmd.Run
        github.com/kubearmor/KubeArmor/pkg/KubeArmorAnnotation/controllers.PodRefresherReconciler.Reconcile
            controllers/pod-refresh.go:38:23
        sigs.k8s.io/controller-runtime/pkg/client.client.Delete
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/client/client.go:213:30
        sigs.k8s.io/controller-runtime/pkg/client.typedClient.Delete
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/client/typed_client.go:88:5
        k8s.io/client-go/rest.Request.Do
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/rest/request.go:924:18
        k8s.io/client-go/rest.Request.request
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/rest/request.go:883:25
        net/http.Client.Do
            /usr/local/go/src/net/http/client.go:581:13
        net/http.Client.do
            /usr/local/go/src/net/http/client.go:715:36
        net/http.Client.send
            /usr/local/go/src/net/http/client.go:175:30
        net/http.send
            /usr/local/go/src/net/http/client.go:251:26
        k8s.io/client-go/plugin/pkg/client/auth/exec.roundTripper.RoundTrip
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:336:28
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.getCreds
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:379:32
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.refreshCredsLocked
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:435:15
        os/exec.Cmd.Run
          There are 27 more call stacks available.
      To see all of them, pass the -json flags.

  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-1095

Vulnerability #3: GO-2022-1039
  Programs which compile regular expressions from untrusted
  sources may be vulnerable to memory exhaustion or denial of
  service. The parsed regexp representation is linear in the size
  of the input, but in some cases the constant factor can be as
  high as 40,000, making relatively small regexps consume much
  larger amounts of memory. After fix, each regexp being parsed is
  limited to a 256 MB memory footprint. Regular expressions whose
  representation would use more space than that are rejected.
  Normal use of regular expressions is unaffected.

  Call stacks in your code:
      #1: for function Parse
        github.com/kubearmor/KubeArmor/pkg/KubeArmorAnnotation/controllers.init
            controllers/pod-refresh.go:12:2
        k8s.io/apimachinery/pkg/runtime.init
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/runtime/scheme.go:26:2
        k8s.io/apimachinery/pkg/util/naming.init
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/naming/from_stack.go:77:38
        regexp.MustCompile
            /usr/local/go/src/regexp/regexp.go:317:24
        regexp.Compile
            /usr/local/go/src/regexp/regexp.go:137:16
        regexp.compile
            /usr/local/go/src/regexp/regexp.go:174:25
        regexp/syntax.Parse
          There are 14 more call stacks available.
      To see all of them, pass the -json flags.

  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-1039

Vulnerability #4: GO-2022-1095
  Due to unsanitized NUL values, attackers may be able to
  maliciously set environment variables on Windows. In
  syscall.StartProcess and os/exec.Cmd, invalid environment
  variable values containing NUL values are not properly checked
  for. A malicious environment variable value can exploit this
  behavior to set a value for a different environment variable.
  For example, the environment variable string "A=B\x00C=D" sets
  the variables "A=B" and "C=D".

  Call stacks in your code:
      #1: for function StartProcess
        github.com/kubearmor/KubeArmor/pkg/KubeArmorAnnotation/controllers.PodRefresherReconciler.Reconcile
            controllers/pod-refresh.go:38:23
        sigs.k8s.io/controller-runtime/pkg/client.client.Delete
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/client/client.go:213:30
        sigs.k8s.io/controller-runtime/pkg/client.typedClient.Delete
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/client/typed_client.go:88:5
        k8s.io/client-go/rest.Request.Do
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/rest/request.go:924:18
        k8s.io/client-go/rest.Request.request
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/rest/request.go:883:25
        net/http.Client.Do
            /usr/local/go/src/net/http/client.go:581:13
        net/http.Client.do
            /usr/local/go/src/net/http/client.go:715:36
        net/http.Client.send
            /usr/local/go/src/net/http/client.go:175:30
        net/http.send
            /usr/local/go/src/net/http/client.go:251:26
        k8s.io/client-go/plugin/pkg/client/auth/exec.roundTripper.RoundTrip
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:336:28
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.getCreds
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:379:32
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.refreshCredsLocked
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:435:15
        os/exec.Cmd.Run
            /usr/local/go/src/os/exec/exec.go:434:19
        os/exec.Cmd.Start
            /usr/local/go/src/os/exec/exec.go:524:34
        os.StartProcess
            /usr/local/go/src/os/exec.go:109:21
        os.startProcess
            /usr/local/go/src/os/exec_posix.go:54:35
        syscall.StartProcess
          There are 14 more call stacks available.
      To see all of them, pass the -json flags.

  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-1095

=== Informational ===

The vulnerabilities below are in packages that you import, but your code
doesn't appear to call any vulnerable functions. You may not need to take any
action. See https://pkg.go.dev/golang.org/x/vuln/cmd/govulncheck
for details.

Vulnerability #1: GO-2022-0988
  JoinPath and URL.JoinPath do not remove ../ path elements appended to a relative path. For example, JoinPath("https://go.dev", "../go") returns the URL "https://go.dev/../go", despite the JoinPath documentation stating that ../ path elements are removed from the result.
  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-0988
govulncheck is an experimental tool. Share feedback at https://go.dev/s/govulncheck-feedback.

Scanning for dependencies with known vulnerabilities...
Found 3 known vulnerabilities.

Vulnerability #1: GO-2022-0969
  HTTP/2 server connections can hang forever waiting for a clean
  shutdown that was preempted by a fatal error. This condition can
  be exploited by a malicious client to cause a denial of service.

  Call stacks in your code:
      #1: for function Server.Serve
        github.com/kubearmor/KubeArmor/pkg/KubeArmorController.main
            main.go:136:21
        sigs.k8s.io/controller-runtime/pkg/manager.controllerManager.Start
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/manager/internal.go:445:18
        sigs.k8s.io/controller-runtime/pkg/manager.controllerManager.serveMetrics
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/manager/internal.go:337:2
        sigs.k8s.io/controller-runtime/pkg/manager.controllerManager.httpServe
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/manager/internal.go:361:2
        sigs.k8s.io/controller-runtime/pkg/manager.httpServe$1
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/manager/internal.go:363:25
        net/http.Server.Serve
          There are 20 more call stacks available.
      To see all of them, pass the -json flags.

  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-0969

Vulnerability #2: GO-2022-1095
  Due to unsanitized NUL values, attackers may be able to
  maliciously set environment variables on Windows. In
  syscall.StartProcess and os/exec.Cmd, invalid environment
  variable values containing NUL values are not properly checked
  for. A malicious environment variable value can exploit this
  behavior to set a value for a different environment variable.
  For example, the environment variable string "A=B\x00C=D" sets
  the variables "A=B" and "C=D".

  Call stacks in your code:
      #1: for function Cmd.Output
        github.com/kubearmor/KubeArmor/pkg/KubeArmorController/controllers.PodRefresherReconciler.Reconcile
            controllers/podrefresh_controller.go:39:23
        sigs.k8s.io/controller-runtime/pkg/client.client.Delete
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/client/client.go:213:30
        sigs.k8s.io/controller-runtime/pkg/client.typedClient.Delete
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/client/typed_client.go:88:5
        k8s.io/client-go/rest.Request.Do
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/rest/request.go:924:18
        k8s.io/client-go/rest.Request.request
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/rest/request.go:883:25
        net/http.Client.Do
            /usr/local/go/src/net/http/client.go:581:13
        net/http.Client.do
            /usr/local/go/src/net/http/client.go:715:36
        net/http.Client.send
            /usr/local/go/src/net/http/client.go:175:30
        net/http.send
            /usr/local/go/src/net/http/client.go:251:26
        golang.org/x/oauth2.Transport.RoundTrip
            /home/wazir/go/pkg/mod/golang.org/x/oauth2@v0.0.0-20220822191816-0ebed06d0094/transport.go:45:30
        k8s.io/client-go/plugin/pkg/client/auth/gcp.cachedTokenSource.Token
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/gcp/gcp.go:225:28
        k8s.io/client-go/plugin/pkg/client/auth/gcp.commandTokenSource.Token
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/gcp/gcp.go:307:27
        os/exec.Cmd.Output
      #2: for function Cmd.Run
        github.com/kubearmor/KubeArmor/pkg/KubeArmorController/controllers.PodRefresherReconciler.Reconcile
            controllers/podrefresh_controller.go:39:23
        sigs.k8s.io/controller-runtime/pkg/client.client.Delete
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/client/client.go:213:30
        sigs.k8s.io/controller-runtime/pkg/client.typedClient.Delete
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/client/typed_client.go:88:5
        k8s.io/client-go/rest.Request.Do
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/rest/request.go:924:18
        k8s.io/client-go/rest.Request.request
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/rest/request.go:883:25
        net/http.Client.Do
            /usr/local/go/src/net/http/client.go:581:13
        net/http.Client.do
            /usr/local/go/src/net/http/client.go:715:36
        net/http.Client.send
            /usr/local/go/src/net/http/client.go:175:30
        net/http.send
            /usr/local/go/src/net/http/client.go:251:26
        k8s.io/client-go/plugin/pkg/client/auth/exec.roundTripper.RoundTrip
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:336:28
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.getCreds
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:379:32
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.refreshCredsLocked
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:435:15
        os/exec.Cmd.Run
          There are 43 more call stacks available.
      To see all of them, pass the -json flags.

  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-1095

Vulnerability #3: GO-2022-1039
  Programs which compile regular expressions from untrusted
  sources may be vulnerable to memory exhaustion or denial of
  service. The parsed regexp representation is linear in the size
  of the input, but in some cases the constant factor can be as
  high as 40,000, making relatively small regexps consume much
  larger amounts of memory. After fix, each regexp being parsed is
  limited to a 256 MB memory footprint. Regular expressions whose
  representation would use more space than that are rejected.
  Normal use of regular expressions is unaffected.

  Call stacks in your code:
      #1: for function Parse
        github.com/kubearmor/KubeArmor/pkg/KubeArmorController/controllers.init
            controllers/kubearmorhostpolicy_controller.go:14:2
        k8s.io/apimachinery/pkg/runtime.init
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/runtime/scheme.go:26:2
        k8s.io/apimachinery/pkg/util/naming.init
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/naming/from_stack.go:77:38
        regexp.MustCompile
            /usr/local/go/src/regexp/regexp.go:317:24
        regexp.Compile
            /usr/local/go/src/regexp/regexp.go:137:16
        regexp.compile
            /usr/local/go/src/regexp/regexp.go:174:25
        regexp/syntax.Parse
          There are 21 more call stacks available.
      To see all of them, pass the -json flags.

  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-1039

Vulnerability #4: GO-2022-1095
  Due to unsanitized NUL values, attackers may be able to
  maliciously set environment variables on Windows. In
  syscall.StartProcess and os/exec.Cmd, invalid environment
  variable values containing NUL values are not properly checked
  for. A malicious environment variable value can exploit this
  behavior to set a value for a different environment variable.
  For example, the environment variable string "A=B\x00C=D" sets
  the variables "A=B" and "C=D".

  Call stacks in your code:
      #1: for function StartProcess
        github.com/kubearmor/KubeArmor/pkg/KubeArmorController/controllers.PodRefresherReconciler.Reconcile
            controllers/podrefresh_controller.go:39:23
        sigs.k8s.io/controller-runtime/pkg/client.client.Delete
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/client/client.go:213:30
        sigs.k8s.io/controller-runtime/pkg/client.typedClient.Delete
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/client/typed_client.go:88:5
        k8s.io/client-go/rest.Request.Do
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/rest/request.go:924:18
        k8s.io/client-go/rest.Request.request
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/rest/request.go:883:25
        net/http.Client.Do
            /usr/local/go/src/net/http/client.go:581:13
        net/http.Client.do
            /usr/local/go/src/net/http/client.go:715:36
        net/http.Client.send
            /usr/local/go/src/net/http/client.go:175:30
        net/http.send
            /usr/local/go/src/net/http/client.go:251:26
        k8s.io/client-go/plugin/pkg/client/auth/exec.roundTripper.RoundTrip
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:336:28
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.getCreds
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:379:32
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.refreshCredsLocked
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:435:15
        os/exec.Cmd.Run
            /usr/local/go/src/os/exec/exec.go:434:19
        os/exec.Cmd.Start
            /usr/local/go/src/os/exec/exec.go:524:34
        os.StartProcess
            /usr/local/go/src/os/exec.go:109:21
        os.startProcess
            /usr/local/go/src/os/exec_posix.go:54:35
        syscall.StartProcess
          There are 23 more call stacks available.
      To see all of them, pass the -json flags.

  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-1095

=== Informational ===

The vulnerabilities below are in packages that you import, but your code
doesn't appear to call any vulnerable functions. You may not need to take any
action. See https://pkg.go.dev/golang.org/x/vuln/cmd/govulncheck
for details.

Vulnerability #1: GO-2022-0988
  JoinPath and URL.JoinPath do not remove ../ path elements appended to a relative path. For example, JoinPath("https://go.dev", "../go") returns the URL "https://go.dev/../go", despite the JoinPath documentation stating that ../ path elements are removed from the result.
  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-0988
govulncheck is an experimental tool. Share feedback at https://go.dev/s/govulncheck-feedback.

Scanning for dependencies with known vulnerabilities...
Found 3 known vulnerabilities.

Vulnerability #1: GO-2022-0969
  HTTP/2 server connections can hang forever waiting for a clean
  shutdown that was preempted by a fatal error. This condition can
  be exploited by a malicious client to cause a denial of service.

  Call stacks in your code:
      #1: for function Server.Serve
        github.com/kubearmor/KubeArmor/pkg/KubeArmorHostPolicy.main
            main.go:75:21
        sigs.k8s.io/controller-runtime/pkg/manager.controllerManager.Start
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.3/pkg/manager/internal.go:445:18
        sigs.k8s.io/controller-runtime/pkg/manager.controllerManager.serveMetrics
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.3/pkg/manager/internal.go:337:2
        sigs.k8s.io/controller-runtime/pkg/manager.controllerManager.httpServe
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.3/pkg/manager/internal.go:361:2
        sigs.k8s.io/controller-runtime/pkg/manager.httpServe$1
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.3/pkg/manager/internal.go:363:25
        net/http.Server.Serve

  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-0969

Vulnerability #2: GO-2022-1095
  Due to unsanitized NUL values, attackers may be able to
  maliciously set environment variables on Windows. In
  syscall.StartProcess and os/exec.Cmd, invalid environment
  variable values containing NUL values are not properly checked
  for. A malicious environment variable value can exploit this
  behavior to set a value for a different environment variable.
  For example, the environment variable string "A=B\x00C=D" sets
  the variables "A=B" and "C=D".

  Call stacks in your code:
      #1: for function Cmd.Output
        github.com/kubearmor/KubeArmor/pkg/KubeArmorHostPolicy/client/clientset/versioned/typed/security.kubearmor.com/v1.kubeArmorHostPolicies.Watch
            client/clientset/versioned/typed/security.kubearmor.com/v1/kubearmorhostpolicy.go:91:8
        k8s.io/client-go/rest.Request.Watch
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/rest/request.go:639:25
        net/http.Client.Do
            /usr/local/go/src/net/http/client.go:581:13
        net/http.Client.do
            /usr/local/go/src/net/http/client.go:715:36
        net/http.Client.send
            /usr/local/go/src/net/http/client.go:175:30
        net/http.send
            /usr/local/go/src/net/http/client.go:251:26
        golang.org/x/oauth2.Transport.RoundTrip
            /home/wazir/go/pkg/mod/golang.org/x/oauth2@v0.0.0-20220822191816-0ebed06d0094/transport.go:45:30
        k8s.io/client-go/plugin/pkg/client/auth/gcp.cachedTokenSource.Token
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/gcp/gcp.go:225:28
        k8s.io/client-go/plugin/pkg/client/auth/gcp.commandTokenSource.Token
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/gcp/gcp.go:307:27
        os/exec.Cmd.Output
      #2: for function Cmd.Run
        github.com/kubearmor/KubeArmor/pkg/KubeArmorHostPolicy/client/informers/externalversions.sharedInformerFactory.Start
            client/informers/externalversions/factory.go:104:4
        k8s.io/client-go/tools/cache.sharedIndexInformer.Run
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/tools/cache/shared_informer.go:443:18
        k8s.io/client-go/tools/cache.controller.Run
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/tools/cache/controller.go:155:12
        k8s.io/apimachinery/pkg/util/wait.Until
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/wait/wait.go:92:13
        k8s.io/apimachinery/pkg/util/wait.JitterUntil
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/wait/wait.go:135:14
        k8s.io/apimachinery/pkg/util/wait.BackoffUntil
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/wait/wait.go:158:4
        k8s.io/apimachinery/pkg/util/wait.BackoffUntil$1
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/wait/wait.go:157:5
        k8s.io/client-go/transport.dynamicClientCert.runWorker
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/transport/cert_rotation.go:151:27
        k8s.io/client-go/transport.dynamicClientCert.processNextWorkItem
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/transport/cert_rotation.go:162:28
        k8s.io/client-go/transport.dynamicClientCert.loadClientCert
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/transport/cert_rotation.go:65:23
        k8s.io/client-go/transport.TLSConfigFor$1
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/transport/transport.go:119:31
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.cert
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:364:26
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.getCreds
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:379:32
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.refreshCredsLocked
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:435:15
        os/exec.Cmd.Run
          There are 150 more call stacks available.
      To see all of them, pass the -json flags.

  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-1095

Vulnerability #3: GO-2022-1039
  Programs which compile regular expressions from untrusted
  sources may be vulnerable to memory exhaustion or denial of
  service. The parsed regexp representation is linear in the size
  of the input, but in some cases the constant factor can be as
  high as 40,000, making relatively small regexps consume much
  larger amounts of memory. After fix, each regexp being parsed is
  limited to a 256 MB memory footprint. Regular expressions whose
  representation would use more space than that are rejected.
  Normal use of regular expressions is unaffected.

  Call stacks in your code:
      #1: for function Parse
        github.com/kubearmor/KubeArmor/pkg/KubeArmorHostPolicy/client/listers/security.kubearmor.com/v1.init
            client/listers/security.kubearmor.com/v1/kubearmorhostpolicy.go:11:2
        k8s.io/apimachinery/pkg/labels.init
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/labels/selector.go:27:2
        k8s.io/apimachinery/pkg/util/validation.init
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/validation/validation.go:37:45
        regexp.MustCompile
            /usr/local/go/src/regexp/regexp.go:317:24
        regexp.Compile
            /usr/local/go/src/regexp/regexp.go:137:16
        regexp.compile
            /usr/local/go/src/regexp/regexp.go:174:25
        regexp/syntax.Parse
          There are 103 more call stacks available.
      To see all of them, pass the -json flags.

  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-1039

Vulnerability #4: GO-2022-1095
  Due to unsanitized NUL values, attackers may be able to
  maliciously set environment variables on Windows. In
  syscall.StartProcess and os/exec.Cmd, invalid environment
  variable values containing NUL values are not properly checked
  for. A malicious environment variable value can exploit this
  behavior to set a value for a different environment variable.
  For example, the environment variable string "A=B\x00C=D" sets
  the variables "A=B" and "C=D".

  Call stacks in your code:
      #1: for function StartProcess
        github.com/kubearmor/KubeArmor/pkg/KubeArmorHostPolicy/client/informers/externalversions.sharedInformerFactory.Start
            client/informers/externalversions/factory.go:104:4
        k8s.io/client-go/tools/cache.sharedIndexInformer.Run
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/tools/cache/shared_informer.go:443:18
        k8s.io/client-go/tools/cache.controller.Run
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/tools/cache/controller.go:155:12
        k8s.io/apimachinery/pkg/util/wait.Until
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/wait/wait.go:92:13
        k8s.io/apimachinery/pkg/util/wait.JitterUntil
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/wait/wait.go:135:14
        k8s.io/apimachinery/pkg/util/wait.BackoffUntil
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/wait/wait.go:158:4
        k8s.io/apimachinery/pkg/util/wait.BackoffUntil$1
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/wait/wait.go:157:5
        k8s.io/client-go/transport.dynamicClientCert.runWorker
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/transport/cert_rotation.go:151:27
        k8s.io/client-go/transport.dynamicClientCert.processNextWorkItem
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/transport/cert_rotation.go:162:28
        k8s.io/client-go/transport.dynamicClientCert.loadClientCert
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/transport/cert_rotation.go:65:23
        k8s.io/client-go/transport.TLSConfigFor$1
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/transport/transport.go:119:31
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.cert
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:364:26
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.getCreds
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:379:32
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.refreshCredsLocked
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:435:15
        os/exec.Cmd.Run
            /usr/local/go/src/os/exec/exec.go:434:19
        os/exec.Cmd.Start
            /usr/local/go/src/os/exec/exec.go:524:34
        os.StartProcess
            /usr/local/go/src/os/exec.go:109:21
        os.startProcess
            /usr/local/go/src/os/exec_posix.go:54:35
        syscall.StartProcess
          There are 77 more call stacks available.
      To see all of them, pass the -json flags.

  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-1095

=== Informational ===

The vulnerabilities below are in packages that you import, but your code
doesn't appear to call any vulnerable functions. You may not need to take any
action. See https://pkg.go.dev/golang.org/x/vuln/cmd/govulncheck
for details.

Vulnerability #1: GO-2022-0988
  JoinPath and URL.JoinPath do not remove ../ path elements appended to a relative path. For example, JoinPath("https://go.dev", "../go") returns the URL "https://go.dev/../go", despite the JoinPath documentation stating that ../ path elements are removed from the result.
  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-0988
govulncheck is an experimental tool. Share feedback at https://go.dev/s/govulncheck-feedback.

Scanning for dependencies with known vulnerabilities...
Found 3 known vulnerabilities.

Vulnerability #1: GO-2022-0969
  HTTP/2 server connections can hang forever waiting for a clean
  shutdown that was preempted by a fatal error. This condition can
  be exploited by a malicious client to cause a denial of service.

  Call stacks in your code:
      #1: for function Server.Serve
        github.com/kubearmor/KubeArmor/pkg/KubeArmorPolicy.main
            main.go:76:21
        sigs.k8s.io/controller-runtime/pkg/manager.controllerManager.Start
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/manager/internal.go:445:18
        sigs.k8s.io/controller-runtime/pkg/manager.controllerManager.serveMetrics
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/manager/internal.go:337:2
        sigs.k8s.io/controller-runtime/pkg/manager.controllerManager.httpServe
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/manager/internal.go:361:2
        sigs.k8s.io/controller-runtime/pkg/manager.httpServe$1
            /home/wazir/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.0/pkg/manager/internal.go:363:25
        net/http.Server.Serve

  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-0969

Vulnerability #2: GO-2022-1095
  Due to unsanitized NUL values, attackers may be able to
  maliciously set environment variables on Windows. In
  syscall.StartProcess and os/exec.Cmd, invalid environment
  variable values containing NUL values are not properly checked
  for. A malicious environment variable value can exploit this
  behavior to set a value for a different environment variable.
  For example, the environment variable string "A=B\x00C=D" sets
  the variables "A=B" and "C=D".

  Call stacks in your code:
      #1: for function Cmd.Output
        github.com/kubearmor/KubeArmor/pkg/KubeArmorPolicy/client/clientset/versioned/typed/security.kubearmor.com/v1.kubeArmorPolicies.Watch
            client/clientset/versioned/typed/security.kubearmor.com/v1/kubearmorpolicy.go:96:8
        k8s.io/client-go/rest.Request.Watch
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/rest/request.go:639:25
        net/http.Client.Do
            /usr/local/go/src/net/http/client.go:581:13
        net/http.Client.do
            /usr/local/go/src/net/http/client.go:715:36
        net/http.Client.send
            /usr/local/go/src/net/http/client.go:175:30
        net/http.send
            /usr/local/go/src/net/http/client.go:251:26
        golang.org/x/oauth2.Transport.RoundTrip
            /home/wazir/go/pkg/mod/golang.org/x/oauth2@v0.0.0-20220822191816-0ebed06d0094/transport.go:45:30
        k8s.io/client-go/plugin/pkg/client/auth/gcp.cachedTokenSource.Token
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/gcp/gcp.go:225:28
        k8s.io/client-go/plugin/pkg/client/auth/gcp.commandTokenSource.Token
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/gcp/gcp.go:307:27
        os/exec.Cmd.Output
      #2: for function Cmd.Run
        github.com/kubearmor/KubeArmor/pkg/KubeArmorPolicy/client/informers/externalversions.sharedInformerFactory.Start
            client/informers/externalversions/factory.go:104:4
        k8s.io/client-go/tools/cache.sharedIndexInformer.Run
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/tools/cache/shared_informer.go:443:18
        k8s.io/client-go/tools/cache.controller.Run
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/tools/cache/controller.go:155:12
        k8s.io/apimachinery/pkg/util/wait.Until
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/wait/wait.go:92:13
        k8s.io/apimachinery/pkg/util/wait.JitterUntil
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/wait/wait.go:135:14
        k8s.io/apimachinery/pkg/util/wait.BackoffUntil
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/wait/wait.go:158:4
        k8s.io/apimachinery/pkg/util/wait.BackoffUntil$1
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/wait/wait.go:157:5
        k8s.io/client-go/transport.dynamicClientCert.runWorker
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/transport/cert_rotation.go:151:27
        k8s.io/client-go/transport.dynamicClientCert.processNextWorkItem
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/transport/cert_rotation.go:162:28
        k8s.io/client-go/transport.dynamicClientCert.loadClientCert
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/transport/cert_rotation.go:65:23
        k8s.io/client-go/transport.TLSConfigFor$1
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/transport/transport.go:119:31
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.cert
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:364:26
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.getCreds
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:379:32
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.refreshCredsLocked
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:435:15
        os/exec.Cmd.Run
          There are 152 more call stacks available.
      To see all of them, pass the -json flags.

  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-1095

Vulnerability #3: GO-2022-1039
  Programs which compile regular expressions from untrusted
  sources may be vulnerable to memory exhaustion or denial of
  service. The parsed regexp representation is linear in the size
  of the input, but in some cases the constant factor can be as
  high as 40,000, making relatively small regexps consume much
  larger amounts of memory. After fix, each regexp being parsed is
  limited to a 256 MB memory footprint. Regular expressions whose
  representation would use more space than that are rejected.
  Normal use of regular expressions is unaffected.

  Call stacks in your code:
      #1: for function Parse
        github.com/kubearmor/KubeArmor/pkg/KubeArmorPolicy/client/listers/security.kubearmor.com/v1.init
            client/listers/security.kubearmor.com/v1/kubearmorpolicy.go:11:2
        k8s.io/apimachinery/pkg/labels.init
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/labels/selector.go:27:2
        k8s.io/apimachinery/pkg/util/validation.init
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/validation/validation.go:37:45
        regexp.MustCompile
            /usr/local/go/src/regexp/regexp.go:317:24
        regexp.Compile
            /usr/local/go/src/regexp/regexp.go:137:16
        regexp.compile
            /usr/local/go/src/regexp/regexp.go:174:25
        regexp/syntax.Parse
          There are 104 more call stacks available.
      To see all of them, pass the -json flags.

  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-1039

Vulnerability #4: GO-2022-1095
  Due to unsanitized NUL values, attackers may be able to
  maliciously set environment variables on Windows. In
  syscall.StartProcess and os/exec.Cmd, invalid environment
  variable values containing NUL values are not properly checked
  for. A malicious environment variable value can exploit this
  behavior to set a value for a different environment variable.
  For example, the environment variable string "A=B\x00C=D" sets
  the variables "A=B" and "C=D".

  Call stacks in your code:
      #1: for function StartProcess
        github.com/kubearmor/KubeArmor/pkg/KubeArmorPolicy/client/informers/externalversions.sharedInformerFactory.Start
            client/informers/externalversions/factory.go:104:4
        k8s.io/client-go/tools/cache.sharedIndexInformer.Run
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/tools/cache/shared_informer.go:443:18
        k8s.io/client-go/tools/cache.controller.Run
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/tools/cache/controller.go:155:12
        k8s.io/apimachinery/pkg/util/wait.Until
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/wait/wait.go:92:13
        k8s.io/apimachinery/pkg/util/wait.JitterUntil
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/wait/wait.go:135:14
        k8s.io/apimachinery/pkg/util/wait.BackoffUntil
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/wait/wait.go:158:4
        k8s.io/apimachinery/pkg/util/wait.BackoffUntil$1
            /home/wazir/go/pkg/mod/k8s.io/apimachinery@v0.25.0/pkg/util/wait/wait.go:157:5
        k8s.io/client-go/transport.dynamicClientCert.runWorker
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/transport/cert_rotation.go:151:27
        k8s.io/client-go/transport.dynamicClientCert.processNextWorkItem
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/transport/cert_rotation.go:162:28
        k8s.io/client-go/transport.dynamicClientCert.loadClientCert
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/transport/cert_rotation.go:65:23
        k8s.io/client-go/transport.TLSConfigFor$1
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/transport/transport.go:119:31
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.cert
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:364:26
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.getCreds
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:379:32
        k8s.io/client-go/plugin/pkg/client/auth/exec.Authenticator.refreshCredsLocked
            /home/wazir/go/pkg/mod/k8s.io/client-go@v0.25.0/plugin/pkg/client/auth/exec/exec.go:435:15
        os/exec.Cmd.Run
            /usr/local/go/src/os/exec/exec.go:434:19
        os/exec.Cmd.Start
            /usr/local/go/src/os/exec/exec.go:524:34
        os.StartProcess
            /usr/local/go/src/os/exec.go:109:21
        os.startProcess
            /usr/local/go/src/os/exec_posix.go:54:35
        syscall.StartProcess
          There are 78 more call stacks available.
      To see all of them, pass the -json flags.

  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-1095

=== Informational ===

The vulnerabilities below are in packages that you import, but your code
doesn't appear to call any vulnerable functions. You may not need to take any
action. See https://pkg.go.dev/golang.org/x/vuln/cmd/govulncheck
for details.

Vulnerability #1: GO-2022-0988
  JoinPath and URL.JoinPath do not remove ../ path elements appended to a relative path. For example, JoinPath("https://go.dev", "../go") returns the URL "https://go.dev/../go", despite the JoinPath documentation stating that ../ path elements are removed from the result.
  Found in<EMAIL_ADDRESS>  Fixed in<EMAIL_ADDRESS>  More info: https://pkg.go.dev/vuln/GO-2022-0988

Thanks.
I see that there are 2 vulnerabilities reported directly in the kubearmor code and I believe these should be easily fixable and should be fixed in this PR.
Other informational vulnerabilities are in the deps.

Sure, I will do the required in this PR.Should I move the scan to ci-test-go or let it be in the Makefile. As any informational vulnerabilities in the deps too would cause the build to fail.

@nyrahul , the scan report I sent was for go 1.19. My bad for noticing it earlier. The informational vulnerabilities which have been reported have been already backported to golang packagges. I attach the report from golang:1.18.8-bullseye docker image. Current version of Kuberarmor does not have any vulnerable functions that are being called.
govulnscan.log

I quote the documentation :

Govulncheck only reports vulnerabilities that apply to the current Go version. For example, a standard library vulnerability that only applies for Go 1.18 will not be reported if the current Go version is 1.19. See https://go.dev/issue/54841 for updates to this limitation.

Verified that there are no vulnerabilities reported by govulncheck if the golang version >=1.19.4 is used.
I am merging these changes since manual verification using make scan is possible with this PR. Let's handle GH action check in a separate PR.

Thanks for approving the PR. I am glad to be able to contribute to the project :)

Sure, I will create a PR there with the changes

Done. PR at https://github.com/kubearmor/kubearmor-client/pull/262/files


Conflicting Classnames with the normal semantic classes.

Hi,
I am trying to integrate the chat widget to my project which has semantic ui in it. But it is overriding  the semantic ui header classes. Hence all my headers are loading with wrong styles.
TIA

Hi @cruisecoders! Yes, that's a known issue that has been reported. I'll do my best to upload a new version with the fix in the upcoming days. Sorry for the inconvenience :smile:

@cruisecoders Did you try the last version? Should be fixed with #31. If not the same issue, please provide an example code so I can see where the problem is :smile:


Chinese demo

Urge the adoption

Can you make a separate PR from the chinese demo link?
Thank you!


React Selectize not working

I have a requirement of react-selectize. I follow its documentation but unfortunately there is some type following errors coming as below ..

Element ref was specified as a string (select) but no owner was set. You may have multiple copies of React loaded.

While when i used in different package (latest create-react-app)  it is working fine . Please give me some help so that i can resolve my issue ..
Thanks a lot ..

It is because I moved react-redux-saga-server-side-render-helper to separate package. You may not to use this package and just copy sources from https://github.com/gzoreslav/react-redux-saga-server-side-render-helper/tree/master/src directly to your sources.
I will do it in new versions

It works ...  and also free of https://github.com/gzoreslav/react-redux-saga-server-side-render-helper. Hope new versions come soon ...
:+1:


Instantiating operators using CRDs

[kind/Feature]

Which functionality do you think we should add?
Once we have validated a cluster, odo should have the functionality to instantiate an operator backed service using the CRD provided by it.
Why is this needed?
To allow openshift/kubernetes users to use operators.

The initial implementation will possibly be using the alm-examples array present in the ClusterServiceVersion of an operator.
An example array from keyclock operator looks like this -
[
        {
          "apiVersion": "keycloak.org/v1alpha1",
          "kind": "Keycloak",
          "metadata": {
            "name": "example-keycloak",
            "labels": {
              "app": "sso"
            }
          },
          "spec": {
            "instances": 1,
            "extensions": [
              "https://github.com/aerogear/keycloak-metrics-spi/releases/download/1.0.4/keycloak-metrics-spi-1.0.4.jar"
            ],
            "externalAccess": {
              "enabled": true
            }
          }
        },
        {
          "apiVersion": "keycloak.org/v1alpha1",
          "kind": "KeycloakRealm",
          "metadata": {
            "name": "example-keycloakrealm"
          },
          "spec": {
            "realm": {
              "id": "basic",
              "realm": "basic",
              "enabled": true,
              "displayName": "Basic Realm"
            },
            "instanceSelector": {
              "matchLabels": {
                "app": "sso"
              }
            }
          }
        },
        {
          "apiVersion": "keycloak.org/v1alpha1",
          "kind": "KeycloakBackup",
          "metadata": {
            "name": "example-keycloakbackup"
          }
        },
        {
          "apiVersion": "keycloak.org/v1alpha1",
          "kind": "KeycloakClient",
          "metadata": {
            "name": "client-secret",
            "labels": {
              "app": "sso"
            }
          },
          "spec": {
            "realmSelector": {
              "matchLabels": {
                "app": "sso"
              }
            },
            "client": {
              "clientId": "client-secret",
              "secret": "client-secret",
              "clientAuthenticatorType": "client-secret",
              "protocol": "openid-connect"
            }
          }
        },
        {
          "apiVersion": "keycloak.org/v1alpha1",
          "kind": "KeycloakUser",
          "metadata": {
            "name": "example-realm-user",
            "labels": {
              "app": "sso"
            }
          },
          "spec": {
            "user": {
              "username": "realm_user",
              "firstName": "John",
              "lastName": "Doe",
              "email"<EMAIL_ADDRESS>              "enabled": true,
              "emailVerified": false
            },
            "realmSelector": {
              "matchLabels": {
                "app": "sso"
              }
            }
          }
        }
      ]

Issues with the above approach are

alm-examples is an optional piece of metadata and hence developer of the operator might keep it blank
Multiple examples are present in the array so we cannot determine the best one to use

we can also consider using the validation.openAPIV3Schema which is part of the CRD definition. But as far as I could tell this field is also not mandatory for the developer of the CRD to provide.
Someone has already tried to do this using a web-app
https://blog.openshift.com/openshift-4-2-declarative-dynamic-ui-for-your-operator

Thinking out loud here.
I think what we need here is InstallPlan (check its definition in the table on OLM arch page) for the operators that are installed in the cluster:
$ oc explain installplan
KIND:     InstallPlan
VERSION:  operators.coreos.com/v1alpha1

DESCRIPTION:
     Represents a plan to install and resolve dependencies for Cluster Services.

FIELDS:
   apiVersion   <string>
     APIVersion defines the versioned schema of this representation of an
     object. Servers should convert recognized schemas to the latest internal
     value, and may reject unrecognized values.  Servers may infer this from the endpoint the client submits
     requests to. Cannot be updated. In CamelCase. More info:
     https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

   metadata     <Object>
     Standard object's metadata. More info:
     https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

   spec <Object>
     Spec for an InstallPlan

For example, I have two Operators installed in my cluster:
$ oc get csvs
NAME                        DISPLAY               VERSION   REPLACES                    PHASE
eap-operator.v1.0.0         JBoss EAP             1.0.0                                 Succeeded
prometheusoperator.0.32.0   Prometheus Operator   0.32.0    prometheusoperator.0.27.0   Succeeded

But I have InstallPlan only for the prometheusoperator.0.32.0:
$ oc get ip
NAME            CSV                         APPROVAL    APPROVED
install-nfbct   prometheusoperator.0.32.0   Automatic   true

With InstallPlan available in the cluster, we can offload the task of creating the service to OLM Operator (I don't know how to do this through CLI, but Web Console uses this IP when we create ) since it's the one responsible for creating applications defined by CSVs (ref. OLM Operator).
The other Operator in my cluster eap-operator.v1.0.0 doesn't have a corresponding IP and so when I want to create an application out of it (WildFly Server in this case), I need to provide the details manually. We can think of this as (mandatorily) using interactive mode to create an application/service out of this Operator.
I think we should use OLM operator (its APIs in our code) to create application/service in the cluster instead of trying to do it ourselves. Trying to deploy application/service by ourselves probably sounds like reinventing the wheel.
As I said, I'm thinking out loud here. :smile:

we need to also consider that an operator can have multiple CRs which can be created. like the Prometheus Operator has Prometheus, ServiceMonitor, PodMonitor etc. so we need detect these and allow users to do something like this
odo service create ServiceMonitor

for this to work we need to detect from the CR definition that ServiceMonitor requires Prometheus and we should show that as an error and suggest to create Prometheus

I think what we need here is InstallPlan

Upon further reading, I figured that InstallPlans are for the life-cycle of the Operator itself. They don't seem to have much to do with spinning up the CRs.

Closing in favor of the https://github.com/openshift/odo/issues/2613 user story

/close


chore(main): release 0.7.0

:robot: I have created a release beep boop
0.7.0 (2024-09-30)
Features

auto-register parent classes for manual bindings as well (#26) (d3d909f)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v0.7.0
:sunflower:


Refactor lens.c

Nearly all the necessary features are done, so refactoring may begin to allow a better representation of its behavior for others to read and understand.
Nearly half of the code is lua specific, which should probably be separated into another file.  Lua specific code should be presented through an interface of sorts, to allow plugging in different types of lens implementations, such as faster C code.
Performance is a priority in this project, and too many layers of abstraction may result in a performance hit.  Must find a balance with manageability and legibility.

This is already done.


Bug fix for db schema and model

Fix bugs found in models.py

Thanks for your modification. All good in the two files. Approve done!