-
Notifications
You must be signed in to change notification settings - Fork 75
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
Support customisation of docker images per-keyspace #610
Conversation
Signed-off-by: Florent Poinsard <[email protected]>
// VitessKeyspaceTemplateImages specifies user-definable container images to | ||
// use for this keyspace. | ||
// use for this keyspace. The images defined here by the user will override | ||
// those defined at the top-level in VitessCluster.spec.images | ||
// | ||
// Note: this structure is a copy of VitessKeyspaceImages, once we have gotten | ||
// rid of MysqldImage and replaced it by MysqldImageNew (planned for v2.15), we | ||
// should be able to remove VitessKeyspaceTemplateImages entirely and just use | ||
// VitessKeyspaceImages instead as it contains exactly the same fields. | ||
type VitessKeyspaceTemplateImages struct { | ||
// Vttablet is the container image (including version tag) to use for Vitess Tablet instances. | ||
Vttablet string `json:"vttablet,omitempty"` | ||
// Vtorc is the container image (including version tag) to use for Vitess Orchestrator instances. | ||
Vtorc string `json:"vtorc,omitempty"` | ||
// Vtbackup is the container image (including version tag) to use for Vitess Backup jobs. | ||
Vtbackup string `json:"vtbackup,omitempty"` | ||
// Mysqld specifies the container image to use for mysqld, as well as | ||
// declaring which MySQL flavor setting in Vitess the image is | ||
// compatible with. Only one flavor image may be provided at a time. | ||
// mysqld running alongside each tablet. | ||
Mysqld *MysqldImageNew `json:"mysqld,omitempty"` | ||
// MysqldExporter specifies the container image for mysqld-exporter. | ||
MysqldExporter string `json:"mysqldExporter,omitempty"` | ||
} |
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.
This situation is not ideal to me, but will be cleaned up in a subsequent PR in v2.15 soon.
Signed-off-by: Florent Poinsard <[email protected]>
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 work on this! Just had the one suggestion about the text (which would have to be modified in the source rather than the generated HTML, sorry).
docs/api/index.html
Outdated
<p>While this field allows you to set a different set of Vitess version for | ||
some components of Vitess than the version defined at the top level, it | ||
is important to note that Vitess only ensure compatibility between one | ||
version and the next and previous one. For instance: N is only compatible |
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.
<p>While this field allows you to set a different set of Vitess version for | |
some components of Vitess than the version defined at the top level, it | |
is important to note that Vitess only ensure compatibility between one | |
version and the next and previous one. For instance: N is only compatible | |
<p>While this field allows you to set a different Vitess version for some | |
components than the version defined at the top level, it is important to | |
note that Vitess only ensures compatibility between one version and the | |
next and previous one. For instance: N is only guaranteed to be compatible |
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.
Fixed via 91eb524
with N+1 and N-1. Do be careful when specifying multiple versions across | ||
your cluster so that they respect this compatibility rule.</p> | ||
<p>Note: this structure is a copy of VitessKeyspaceImages, once we have gotten | ||
rid of MysqldImage and replaced it by MysqldImageNew (planned for v2.15), we |
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.
I thought that that new was only temporary? This makes it seem like it's permanent. Maybe I'm misunderstanding.
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.
it is only temporary, we will fix it within this release cycle on main
Signed-off-by: Florent Poinsard <[email protected]>
91eb524
to
426dd7b
Compare
Signed-off-by: Florent Poinsard <[email protected]>
Description
This PR builds on top of #524 and adds full support for cusomisation of all Docker Images per keyspace. We can now define what Docker Image we want to use at the keyspace level. the containers for which we can customise the image we want at the keyspace level are:
vttablet
,vtbackup
,mysql
,mysqldExporter
,vtorc
.This per-keyspace definition takes precedence over the top-level definition in
spec.images
.This PR is part of #608. It fixes the
Issue 1
part.Tests
Backports
As #524 was made on
v2.12
, let's backport this all the way tov2.12
plusv2.11
too as explained in #609.