-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Breaking change] Upgrade quarkus from 1.2.1.Final to 1.9.0.Final #46
Conversation
8397d43
to
7fd726a
Compare
…o include kubernetes-client of at least 4.11.x (4.12.x is included in 1.9.0.Final). This is necessary for us to be able to leverage the v1 API for CustomResourceDefinition as v1beta1 is deprecated and will soon be removed.
7fd726a
to
7f50936
Compare
7f50936
to
d9477ea
Compare
d9477ea
to
6dabe74
Compare
796ae4e
to
5391a5e
Compare
…e status due to a lack of permissions
… of the instana/instana-agent-operator image tag in the generated instana-agent-operator.yaml This will help ensure that the latest operator image version does not get pulled if it requires the customer to also update the instana-agent-operator.yaml with the latest changes.
5391a5e
to
9de49c2
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice. Looks good.
}, | ||
spec+: | ||
super.spec + { | ||
containers: std.mapWithIndex(function(i, c) if i == 0 then c + {image: c.image + ":" + version} else c, super.containers) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this the full version 0.3.9
? This is good for now - but ideally in the future we should probably create major version tags, (so, in this case 0
) and then use the major version tag here as opposed to the full version. But honestly we probably need a proper update strategy other than just "wait for the operator to crash and re-pull"... so, this is good.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah this is the full version, so it'll look like this: image: instana/instana-agent-operator:0.3.9
…e'll need to tie the operator image version to the operator yaml version to ensure customers update the operator yaml in order to get the latest image
87789b1
to
610c77b
Compare
image.push() | ||
image.push('latest') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@wiggzz After discussion with Henning/Miel/Et al., we decided to no longer push the latest
tag and to make the dependency between the operator image and the operator yaml more explicit, i.e. if a customer wants a more recent version of the operator, they have to update their operator yaml.
…ge within the Deployment when generating the ClusterServiceVersion yaml as we have already placed the version there (and no longer using the latest tag)
… update the CustomResource status due to a lack of permissions
Tested the image change with and without the yaml change. Also ensured that the OLM and RedHat artifacts generated only contain the expected changes. |
Will release v1.0.0 closer to Release 192 |
Why
The version of the
quarkus
dependency is sorely outdated (1.2.1.Final
). In order for us to leverage thev1
api ofCustomResourceDefinition
(which we will need to do soon sincev1beta1/CustomResourceDefinition
is deprecated and will be removed in Kubernetes v1.22+), we need at leastkubernetes-client 4.11.x
. Version1.9.0.Final
of quarkus gives uskubernetes-client 4.12
. The last version update ofkubernetes-client
Quarkus did was to4.10.3
before that.Note: This is a breaking change as the version of
kubernetes-client
that's used when calling.createOrReplace
on the Custom Resource's status requires an additionalcreate
permission in the ClusterRole forinstana.io
.What
create
permissions to theinstana.io
apiGroup in the Operator'sClusterRole
ininstana-agent-operator.yaml
. This is due to a change in[kubernetes-client](https://github.com/fabric8io/kubernetes-client/issues/2292)
when callingcreateOrReplace
, it will first try acreate
and if it fails with a conflict exception, then it'll try anupdate
, which means that the operator will needcreate
permissions in theinstana.io
apiGroupoperator-artifacts.jsonnet
template to include the version of theinstana/instana-agent-operator
image tag in the generatedinstana-agent-operator.yaml
to help ensure that the operators using a previous tag would still work if we introduce a breaking change in a new operator image that requires an updatedinstana-agent-operator.yaml
(like the one we're doing now)latest
tag for the operator image in order to tie the operator yaml updates more closely with the operator image updates and avoid the situation where the customers are pulling the latest operator image containing a breaking change but not explicitly updating the operator yamlThe auxiliary changes are for easing the end-to-end testing with Kind with the introduction of 2 scripts that will: