Skip to content

Commit 08f851b

Browse files
authored
Merge pull request #690 from kubero-dev/feature/replace-bitnami-addons
Fix / replace bitnami helmcharts and images
2 parents 2762aba + c81f2c4 commit 08f851b

32 files changed

+1518
-139
lines changed

README.md

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -49,27 +49,35 @@ Kubero is Kubernetes native and runs with two containers on any Kubernetes insta
4949

5050
| | Addon | Maintainer | Built in* |
5151
|-------------------------------------------------------------------------------------------------------------------|---------------------------|---------------------------------------------------------------------------------------|-----------|
52-
| <img src="client/public/img/addons/mysql.svg" width="30px" style="vertical-align: middle; margin: 10px"> | MySQL | [Bitnami](https://github.com/bitnami/charts/tree/main/bitnami/mysql) ||
53-
| <img src="client/public/img/addons/pgsql.svg" width="30px" style="vertical-align: middle; margin: 10px"> | PostgreSQL | [Bitnami](https://github.com/bitnami/charts/tree/main/bitnami/postgresql) ||
54-
| <img src="client/public/img/addons/redis.svg" width="30px" style="vertical-align: middle; margin: 10px"> | Redis | [Bitnami](https://github.com/bitnami/charts/tree/main/bitnami/redis) ||
55-
| <img src="client/public/img/addons/mongo.svg" width="30px" style="vertical-align: middle; margin: 10px"> | MongoDB | [Bitnami](https://github.com/bitnami/charts/tree/main/bitnami/mongodb) ||
56-
| <img src="client/public/img/addons/elasticsearch.svg" width="30px" style="vertical-align: middle; margin: 10px"> | Elasticsearch | [Bitnami](https://github.com/bitnami/charts/tree/main/bitnami/elasticsearch) ||
57-
| <img src="client/public/img/addons/kafka.svg" width="30px" style="vertical-align: middle; margin: 10px"> | Kafka | [Bitnami](https://github.com/bitnami/charts/tree/main/bitnami/kafka) ||
58-
| <img src="client/public/img/addons/couchdb.svg" width="30px" style="vertical-align: middle; margin: 10px"> | CouchDB | [Apache](https://apache.github.io/couchdb-helm) ||
59-
| <img src="client/public/img/addons/Haraka.png" width="30px" style="vertical-align: middle; margin: 10px"> | Haraka Mail Server | [Kubero](https://github.com/kubero-dev/haraka-docker) ||
60-
| <img src="client/public/img/addons/memcached.svg" width="30px" style="vertical-align: middle; margin: 10px"> | Memcache | [Bitnami](https://github.com/bitnami/charts/tree/main/bitnami/memcached) ||
61-
| <img src="client/public/img/addons/RabbitMQ.svg" width="30px" style="vertical-align: middle; margin: 10px"> | RabbitMQ | [Bitnami](https://github.com/bitnami/charts/tree/main/bitnami/rabbitmq) ||
62-
| <img src="client/public/img/addons/cloudflare.svg" width="30px" style="vertical-align: middle; margin: 10px"> | Cludflare Tunnels | [Adianth](https://github.com/adyanth/cloudflare-operator) | |
63-
| <img src="client/public/img/addons/Minio.png" width="30px" style="vertical-align: middle; margin: 10px"> | Minio | [Minio](https://artifacthub.io/packages/olm/community-operators/minio-operator) | |
64-
| <img src="client/public/img/addons/mongo.svg" width="30px" style="vertical-align: middle; margin: 10px"> | Percona MongoDB Cluster | [Percona](https://artifacthub.io/packages/olm/community-operators/mongodb-operator) | |
65-
| <img src="client/public/img/addons/pgsql.svg" width="30px" style="vertical-align: middle; margin: 10px"> | Crunchy Postgres Cluster | [Crunchy Data](https://artifacthub.io/packages/olm/community-operators/postgresql) | |
66-
| <img src="client/public/img/addons/redis.svg" width="30px" style="vertical-align: middle; margin: 10px"> | Redis Cluster | [Opstree](https://artifacthub.io/packages/olm/community-operators/redis-operator) | |
67-
| <img src="client/public/img/addons/CockroachDB.svg" width="30px" style="vertical-align: middle; margin: 10px"> | CockroachDB | [CockroachDB](https://artifacthub.io/packages/olm/community-operators/cockroachdb) | |
68-
| <img src="client/public/img/addons/clickhouse.svg" width="30px" style="vertical-align: middle; margin: 10px"> | Clickhouse | [Altinity ](https://artifacthub.io/packages/olm/community-operators/clickhouse) | |
69-
70-
71-
72-
\* Ships with the Kubero Operator
52+
| <img src="client/public/img/addons/mysql.svg" width="30px" style="vertical-align: middle; margin: 10px"> | MySQL | [groundhog2k](https://github.com/groundhog2k/helm-charts/tree/master/charts/mysql) ||
53+
| <img src="client/public/img/addons/pgsql.svg" width="30px" style="vertical-align: middle; margin: 10px"> | PostgreSQL | [groundhog2k](https://github.com/groundhog2k/helm-charts/tree/master/charts/postgres) ||
54+
| <img src="client/public/img/addons/redis.svg" width="30px" style="vertical-align: middle; margin: 10px"> | Redis | [groundhog2k](https://github.com/groundhog2k/helm-charts/tree/master/charts/redis) ||
55+
| <img src="client/public/img/addons/mongo.svg" width="30px" style="vertical-align: middle; margin: 10px"> | MongoDB | [groundhog2k](https://github.com/groundhog2k/helm-charts/tree/master/charts/mongodb) ||
56+
| <img src="client/public/img/addons/RabbitMQ.svg" width="30px" style="vertical-align: middle; margin: 10px"> | RabbitMQ | [groundhog2k](https://github.com/groundhog2k/helm-charts/tree/master/charts/rabbitmq) ||
57+
| <img src="client/public/img/addons/couchdb.svg" width="30px" style="vertical-align: middle; margin: 10px"> | CouchDB | [Apache](https://apache.github.io/couchdb-helm) ||
58+
| <img src="client/public/img/addons/Haraka.png" width="30px" style="vertical-align: middle; margin: 10px"> | Haraka Mail Server | [Kubero](https://github.com/kubero-dev/haraka-docker) ||
59+
| <img src="client/public/img/addons/mysql.svg" width="30px" style="vertical-align: middle; margin: 10px"> | MySQL | [Bitnami](https://github.com/bitnami/charts/tree/main/bitnami/mysql) | ⚠️ (deprecated) |
60+
| <img src="client/public/img/addons/pgsql.svg" width="30px" style="vertical-align: middle; margin: 10px"> | PostgreSQL | [Bitnami](https://github.com/bitnami/charts/tree/main/bitnami/postgresql) | ⚠️ (deprecated) |
61+
| <img src="client/public/img/addons/redis.svg" width="30px" style="vertical-align: middle; margin: 10px"> | Redis | [Bitnami](https://github.com/bitnami/charts/tree/main/bitnami/redis) | ⚠️ (deprecated) |
62+
| <img src="client/public/img/addons/mongo.svg" width="30px" style="vertical-align: middle; margin: 10px"> | MongoDB | [Bitnami](https://github.com/bitnami/charts/tree/main/bitnami/mongodb) | ⚠️ (deprecated) |
63+
| <img src="client/public/img/addons/elasticsearch.svg" width="30px" style="vertical-align: middle; margin: 10px"> | Elasticsearch | [Bitnami](https://github.com/bitnami/charts/tree/main/bitnami/elasticsearch) | ⚠️ (deprecated) |
64+
| <img src="client/public/img/addons/kafka.svg" width="30px" style="vertical-align: middle; margin: 10px"> | Kafka | [Bitnami](https://github.com/bitnami/charts/tree/main/bitnami/kafka) | ⚠️ (deprecated) |
65+
| <img src="client/public/img/addons/memcached.svg" width="30px" style="vertical-align: middle; margin: 10px"> | Memcache | [Bitnami](https://github.com/bitnami/charts/tree/main/bitnami/memcached) | ⚠️ (deprecated) |
66+
| <img src="client/public/img/addons/RabbitMQ.svg" width="30px" style="vertical-align: middle; margin: 10px"> | RabbitMQ | [Bitnami](https://github.com/bitnami/charts/tree/main/bitnami/rabbitmq) | ⚠️ (deprecated) |
67+
| <img src="client/public/img/addons/pgsql.svg" width="30px" style="vertical-align: middle; margin: 10px"> | PostgreSQL HA | [CloudNative](https://github.com/cloudnative-pg/cloudnative-pg) | |
68+
| <img src="client/public/img/addons/cloudflare.svg" width="30px" style="vertical-align: middle; margin: 10px"> | Cludflare Tunnels | [Adianth](https://github.com/adyanth/cloudflare-operator) | |
69+
| <img src="client/public/img/addons/Minio.png" width="30px" style="vertical-align: middle; margin: 10px"> | Minio | [Minio](https://artifacthub.io/packages/olm/community-operators/minio-operator) | |
70+
| <img src="client/public/img/addons/mongo.svg" width="30px" style="vertical-align: middle; margin: 10px"> | Percona MongoDB Cluster | [Percona](https://artifacthub.io/packages/olm/community-operators/mongodb-operator) | |
71+
| <img src="client/public/img/addons/pgsql.svg" width="30px" style="vertical-align: middle; margin: 10px"> | Crunchy Postgres Cluster | [Crunchy Data](https://artifacthub.io/packages/olm/community-operators/postgresql) | |
72+
| <img src="client/public/img/addons/redis.svg" width="30px" style="vertical-align: middle; margin: 10px"> | Redis Cluster | [Opstree](https://artifacthub.io/packages/olm/community-operators/redis-operator) | |
73+
| <img src="client/public/img/addons/CockroachDB.svg" width="30px" style="vertical-align: middle; margin: 10px"> | CockroachDB | [CockroachDB](https://artifacthub.io/packages/olm/community-operators/cockroachdb) | |
74+
| <img src="client/public/img/addons/clickhouse.svg" width="30px" style="vertical-align: middle; margin: 10px"> | Clickhouse | [Altinity ](https://artifacthub.io/packages/olm/community-operators/clickhouse) | |
75+
76+
77+
78+
\* These add-ons are shipped with the Kubero Operator. They are not High Availability (HA) ready but greate to to get you started as fast as possible.
79+
80+
\*\* All Bitnami add-ons are deprecated and will be removed in future releases due to Broadcom's image repository removal. [read more here](https://github.com/bitnami/charts/issues/35164)
7381

7482
## 164+ Application templates (similar to Heroku Buttons)
7583
- WordPress

client/src/components/addons/index.vue

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@
2828
content="beta"
2929
>
3030
</v-badge>
31+
<v-badge
32+
v-if="addon.deprecated"
33+
color="red"
34+
content="deprecated"
35+
>
36+
</v-badge>
3137
</div>
3238
<v-card-title>
3339
<a :href="addon.url" target="_blank">{{ addon.displayName }}</a>
@@ -123,6 +129,7 @@ type Addon = {
123129
}[],
124130
url: string,
125131
icon: string,
132+
deprecated: boolean,
126133
beta: boolean,
127134
enabled: boolean,
128135
}

client/src/components/apps/addons.vue

Lines changed: 73 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -47,56 +47,83 @@
4747

4848

4949
</v-col>
50-
</v-row>
5150

52-
<v-row>
51+
<v-col
52+
cols="12"
53+
md="3">
5354
<v-dialog
5455
v-model="dialog"
5556
persistent
5657
max-width="600px"
5758
>
5859
<template v-slot:activator="{ props }" v-if="showButtons">
59-
60-
<v-col cols="12">
61-
<v-btn
62-
elevation="2"
63-
icon
64-
small
65-
v-bind="props"
66-
@click="openNewDialog()"
67-
>
68-
<v-icon dark >
69-
mdi-plus
70-
</v-icon>
71-
</v-btn>
72-
</v-col>
60+
<v-card
61+
color="cardBackground"
62+
variant="flat"
63+
class="d-flex flex-column align-center justify-center add-addon-card"
64+
style="height: 198.08px; cursor: pointer; border: 2px dashed rgb(var(--v-theme-primary), 0.25); transition: border-color 0.2s;"
65+
v-bind="props"
66+
@click="openNewDialog()"
67+
68+
>
69+
<v-avatar size="57" rounded class="bg-primary-lighten-2 mb-2" style="background-color: rgb(var(--v-theme-secondary));" >
70+
<v-icon size="36">mdi-plus</v-icon>
71+
</v-avatar>
72+
<span class="text-subtitle-1 font-weight-medium mt-2 text-primary">Add Addon</span>
73+
</v-card>
7374
</template>
7475
<v-card>
75-
<v-card-title>
76+
<v-card-title v-if="mode==='create'">
7677
<span class="text-h5">Addon</span>
7778
</v-card-title>
79+
<v-card-title v-if="mode==='edit'">
80+
<v-container class="pb-0">
81+
<v-avatar
82+
size="50"
83+
rounded
84+
:image="selectedAddon.icon"
85+
:alt="selectedAddon.displayName"
86+
></v-avatar>
87+
<span class="text-h5 ml-4">{{ selectedAddon.displayName }}</span>
88+
</v-container>
89+
</v-card-title>
7890
<v-card-text>
79-
<v-container>
91+
<v-container class="pt-0">
8092
<v-row>
8193
<v-col cols="12">
8294
<v-select
83-
:items="availableAddons"
84-
label="Addon"
85-
outlined
86-
item-title="text"
87-
item-value="value"
88-
v-if="mode==='create'"
89-
v-model="selectedAddon"
90-
></v-select>
91-
</v-col>
92-
93-
<v-col cols="12">
94-
<v-text-field
95-
label="Instance Name"
96-
:rules="baseRule"
97-
v-model="selectedAddon.id"
98-
outlined
99-
></v-text-field>
95+
:items="availableAddons"
96+
label="Addon"
97+
outlined
98+
item-title="text"
99+
item-value="value"
100+
v-if="mode==='create'"
101+
v-model="selectedAddon"
102+
>
103+
<template #item="{ item, props }">
104+
<v-list-item v-bind="props">
105+
<template v-slot:prepend>
106+
<v-avatar
107+
v-if="item.value && item.value.icon"
108+
size="24"
109+
class="mr-2"
110+
:image="item.value.icon"
111+
:alt="item.value.displayName"
112+
></v-avatar>
113+
</template>
114+
</v-list-item>
115+
</template>
116+
<template #selection="{ item }">
117+
<v-avatar
118+
v-if="item.value && item.value.icon"
119+
size="24"
120+
class="mr-2"
121+
:image="item.value.icon"
122+
:alt="item.value.displayName"
123+
></v-avatar>
124+
<span>{{ item.value.displayName }}</span>
125+
</template>
126+
</v-select>
100127
</v-col>
101128

102129
<v-col cols="12" v-for="field in selectedAddon.formfields" v-bind:key="field.name">
@@ -165,7 +192,7 @@
165192
<v-btn
166193
color="blue darken-1"
167194
variant="text"
168-
@click="dialog = false"
195+
@click="dialog = false; selectedAddon = {} as Addon"
169196
>
170197
Close
171198
</v-btn>
@@ -180,6 +207,7 @@
180207
</v-card-actions>
181208
</v-card>
182209
</v-dialog>
210+
</v-col>
183211
</v-row>
184212
</v-form>
185213
</template>
@@ -321,7 +349,15 @@ export default defineComponent({
321349
Object.entries(this.selectedAddon.formfields as FormField[]).forEach(([field, value]) => {
322350
const fieldvalue = get(addon.resourceDefinitions, field, value.default)
323351
//console.log(field, value, fieldvalue);
324-
value.default = fieldvalue;
352+
353+
if (value.name === 'metadata.name' && typeof value.default === 'string') {
354+
if (fieldvalue.startsWith(this.appname)) {
355+
// remove appname prefix
356+
value.default = fieldvalue.replace(`${this.appname}-`, '');
357+
}
358+
} else {
359+
value.default = fieldvalue;
360+
}
325361
});
326362
//console.log(this.selectedAddon.formfields);
327363

0 commit comments

Comments
 (0)