diff --git a/data/authors/abu-sayed.json b/data/authors/abu-sayed.json new file mode 100644 index 0000000..64a76ef --- /dev/null +++ b/data/authors/abu-sayed.json @@ -0,0 +1,10 @@ +{ + "name": "Abu Sayed", + "designation": "Software Engineer", + "company": "AppsCode Inc.", + "biography": "Abu Sayed is a Software Engineer, working at AppsCode Inc. He has been involved with KubeDB project since 2023 and very enthusiastic about Kubernetes and open source in general.", + "profile": "/assets/images/authors/abu-sayed.jpg", + "email": "sayed@appscode.com", + "github": "https://github.com/sayedppqq", + "linkedin": "https://www.linkedin.com/in/sayedppqq/" +} \ No newline at end of file diff --git a/data/authors/ashraful-haque.json b/data/authors/ashraful-haque.json new file mode 100644 index 0000000..b7ae53c --- /dev/null +++ b/data/authors/ashraful-haque.json @@ -0,0 +1,9 @@ +{ + "name": "Ashraful Haque", + "designation": "Software Engineer", + "biography": "Ashraful Haque is a Software Engineer at AppsCode Inc., involved with the Kubernetes project since 2023. He is passionate about Kubernetes and dedicated to open-source technologies.", + "profile": "/assets/images/authors/ashraful.jpg", + "email": "ashraf@appscode.com", + "github": "https://github.com/AshrafulHaqueToni", + "linkedin": "https://www.linkedin.com/in/ashraful-haque-264133176" +} \ No newline at end of file diff --git a/data/authors/md-ishtiaq-islam.json b/data/authors/md-ishtiaq-islam.json index 51c1ee5..0385ba8 100644 --- a/data/authors/md-ishtiaq-islam.json +++ b/data/authors/md-ishtiaq-islam.json @@ -3,7 +3,7 @@ "designation": "Software Engineer", "company": "AppsCode Inc.", "biography": "Ishtiaq is a Software Engineer, working at AppsCode Inc. He has been involved with Kubernetes project since 2022 and very enthusiastic about Kubernetes and open source in general.", - "profile": "/assets/images/authors/profile-photos-84x84/md-ishtiaq-islam.jpg", + "profile": "/assets/images/authors/md-ishtiaq-islam.jpg", "email": "ishtiaq@appscode.com", "github": "https://github.com/ishtiaqhimel", "linkedin": "https://www.linkedin.com/in/md-ishtiaq-islam/" diff --git a/data/clouds.json b/data/clouds.json index 95f9295..4ecb1b7 100644 --- a/data/clouds.json +++ b/data/clouds.json @@ -2,63 +2,63 @@ "aws": { "key": "aws", "logo": { - "src": "https://cdn.appscode.com/images/clouds/aws.png", + "src": "/assets/images/clouds/aws.png", "alt": "Amazon Web Services" } }, "azure": { "key": "azure", "logo": { - "src": "https://cdn.appscode.com/images/clouds/azure.png", + "src": "/assets/images/clouds/azure.png", "alt": "Microsoft Azure" } }, "gce": { "key": "gce", "logo": { - "src": "https://cdn.appscode.com/images/clouds/gcp.png", + "src": "/assets/images/clouds/gcp.png", "alt": "Google Cloud" } }, "digitalocean": { "key": "digitalocean", "logo": { - "src": "https://cdn.appscode.com/images/clouds/digitalocean.png", + "src": "/assets/images/clouds/digitalocean.png", "alt": "DigitalOcean" } }, "linode": { "key": "linode", "logo": { - "src": "https://cdn.appscode.com/images/clouds/linode.png", + "src": "/assets/images/clouds/linode.png", "alt": "Linode" } }, "openstack": { "key": "openstack", "logo": { - "src": "https://cdn.appscode.com/images/clouds/openstack.png", + "src": "/assets/images/clouds/openstack.png", "alt": "OpenStack" } }, "packet": { "key": "packet", "logo": { - "src": "https://cdn.appscode.com/images/clouds/packet.png", + "src": "/assets/images/clouds/packet.png", "alt": "Packet" } }, "baremetal": { "key": "baremetal", "logo": { - "src": "https://cdn.appscode.com/images/clouds/baremetal.png", + "src": "/assets/images/clouds/baremetal.png", "alt": "Baremetal" } }, "docker": { "key": "docker", "logo": { - "src": "https://cdn.appscode.com/images/clouds/docker.png", + "src": "/assets/images/clouds/docker.png", "alt": "Docker" } } diff --git a/data/customers.json b/data/customers.json index 594f674..1560d8d 100644 --- a/data/customers.json +++ b/data/customers.json @@ -5,6 +5,12 @@ "logo": "/assets/images/customers/2024/nokia.png", "show": true }, + "bank-al-etihad": { + "name": "bank-al-etihad", + "website": "#", + "logo": "/assets/images/customers/2024/bank-al-etihad.png", + "show": true + }, "clewmed": { "name": "Clewmed", "website": "#", @@ -86,55 +92,55 @@ "intersystems": { "name": "InterSystems", "website": "https://www.intersystems.com", - "logo": "https://cdn.appscode.com/images/customers/intersystems/logo.png", + "logo": "/assets/images/customers/intersystems/logo.png", "show": false }, "elpheria": { "name": "Elpheria", "website": "https://www.elpheria.com", - "logo": "https://cdn.appscode.com/images/customers/elpheria/logo.png", + "logo": "/assets/images/customers/elpheria/logo.png", "show": false }, "zebra": { "name": "Zebra", "website": "https://www.zebra.com", - "logo": "https://cdn.appscode.com/images/customers/zebra/logo.png", + "logo": "/assets/images/customers/zebra/logo.png", "show": false }, "pricehubble": { "name": "PriceHubble AG", "website": "https://pricehubble.com", - "logo": "https://cdn.appscode.com/images/customers/pricehubble/logo.svg", + "logo": "/assets/images/customers/pricehubble/logo.svg", "show": false }, "rungway": { "name": "Rungway", "website": "https://rungway.com", - "logo": "https://cdn.appscode.com/images/customers/rungway/logo.png", + "logo": "/assets/images/customers/rungway/logo.png", "show": false }, "devolutions": { "name": "Devolutions.net", "website": "https://devolutions.net", - "logo": "https://cdn.appscode.com/images/customers/devolutions/DevolutionsBlue-LR.png", + "logo": "/assets/images/customers/devolutions/DevolutionsBlue-LR.png", "show": false }, "liveramp": { "name": "LiveRamp", "website": "https://liveramp.com", - "logo": "https://cdn.appscode.com/images/customers/liveramp/logo.png", + "logo": "/assets/images/customers/liveramp/logo.png", "show": false }, "birdi": { "name": "BIRDI Pty Ltd", "website": "https://www.birdi.com.au", - "logo": "https://cdn.appscode.com/images/customers/birdi/BIRDI-Logo_Retina.png", + "logo": "/assets/images/customers/birdi/BIRDI-Logo_Retina.png", "show": false }, "astarte": { "name": "Astarte", "website": "http://astarte-platform.org", - "logo": "https://cdn.appscode.com/images/customers/astarte/astarte.png", + "logo": "/assets/images/customers/astarte/astarte.png", "show": false } } diff --git a/data/press.json b/data/press.json index b62857b..5f2af64 100644 --- a/data/press.json +++ b/data/press.json @@ -5,7 +5,7 @@ "link": "https://www.infoworld.com/article/3214627/3-open-source-projects-that-make-kubernetes-easier.html", "timeToRead": "5 mins to Read", "image": { - "src": "https://cdn.appscode.com/images/press/1.png" + "src": "/assets/images/press/1.png" } }, { @@ -14,7 +14,7 @@ "link": "https://www.dataengineeringpodcast.com/kubedb-kubernetes-database-episode-79/", "timeToRead": "50 mins to Listen", "image": { - "src": "https://cdn.appscode.com/images/press/2.png" + "src": "/assets/images/press/2.png" } }, { @@ -23,7 +23,7 @@ "link": "https://thenewstack.io/cncf-introduces-c/", "timeToRead": "5 mins to Read", "image": { - "src": "https://cdn.appscode.com/images/press/3.png" + "src": "/assets/images/press/3.png" } }, { @@ -32,7 +32,7 @@ "link": "https://www.youtube.com/watch?v=7NDU7KkWolE", "timeToRead": "10 mins to Watch", "image": { - "src": "https://cdn.appscode.com/images/press/4.png" + "src": "/assets/images/press/4.png" } } ] diff --git a/data/products/appscode.json b/data/products/appscode.json index e673fbd..110cc66 100644 --- a/data/products/appscode.json +++ b/data/products/appscode.json @@ -239,7 +239,7 @@ ], "cta_area": { "title": "Get Started with AppsCode", - "sub_title": "AppsCode is FREE to use on any supported Kubernetes engines. There is no up-front investment required, and you need to pay only for the resources you use to your infrastructure provider. We offer a 30 days license FREE of cost to try KubeDB.", + "sub_title": "AppsCode is FREE to use on any Kubernetes distribution. There is no up-front investment required, and you need to pay only for the resources you use to your infrastructure provider. We offer a 30 days license FREE of cost to try KubeDB.", "url": "/contact" } } diff --git a/data/products/bytebuilders.json b/data/products/bytebuilders.json index 5d8ed2d..d45df9b 100644 --- a/data/products/bytebuilders.json +++ b/data/products/bytebuilders.json @@ -12,11 +12,11 @@ "themeColor": "" }, "heroImage": { - "src": "https://cdn.appscode.com/images/products/bytebuilders/bytebuilders-hero.gif", + "src": "/assets/images/products/bytebuilders/bytebuilders-hero.gif", "alt": "ByteBuilders" }, "logo": { - "src": "https://cdn.appscode.com/images/products/bytebuilders/bytebuilders.png", + "src": "/assets/images/products/bytebuilders/bytebuilders.png", "alt": "ByteBuilders" }, "logoByAppsCode": { @@ -30,14 +30,14 @@ } }, "logoWhite": { - "src": "https://cdn.appscode.com/images/products/bytebuilders/bytebuilders-white.png", + "src": "/assets/images/products/bytebuilders/bytebuilders-white.png", "alt": "ByteBuilders" }, "icon": { - "src": "https://cdn.appscode.com/images/products/bytebuilders/bytebuilders-icon.png", + "src": "/assets/images/products/bytebuilders/bytebuilders-icon.png", "alt": "ByteBuilders", "sizes": { - "192x192": "https://cdn.appscode.com/images/products/bytebuilders/icons/android-icon-192x192.png" + "192x192": "/assets/images/products/bytebuilders/icons/android-icon-192x192.png" } }, "repoURL": "https://github.com/bytebuilders", @@ -54,7 +54,7 @@ "alt": "" }, "icon": { - "src": "https://cdn.appscode.com/images/products/pharmer/icons/android-icon-48x48.png", + "src": "/assets/images/products/pharmer/icons/android-icon-48x48.png", "alt": "" }, "summary": "Provision and upgrade Kubernetes cluster on any cloud or on-premises infrastructure", @@ -67,7 +67,7 @@ "alt": "" }, "icon": { - "src": "https://cdn.appscode.com/images/products/bytebuilders/features/teamwork-2.png", + "src": "/assets/images/products/bytebuilders/features/teamwork-2.png", "alt": "" }, "summary": "On-board every member of your team on the cloud native journey using informative dashboards", @@ -80,7 +80,7 @@ "alt": "" }, "icon": { - "src": "https://cdn.appscode.com/images/products/voyager/icons/android-icon-48x48.png", + "src": "/assets/images/products/voyager/icons/android-icon-48x48.png", "alt": "" }, "summary": "Voyager ingress controller provides L7 & L4 load balancing, high availability, sticky sessions using HAProxy", @@ -93,7 +93,7 @@ "alt": "" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubedb/icons/android-icon-48x48.png", + "src": "/assets/images/products/kubedb/icons/android-icon-48x48.png", "alt": "" }, "summary": "Run popular databases like, Postgres, Elasticsearch, Redis, MongoDB, MySQL, Memcached etc. on K8s using KubeDB", @@ -106,7 +106,7 @@ "alt": "" }, "icon": { - "src": "https://cdn.appscode.com/images/products/stash/icons/android-icon-48x48.png", + "src": "/assets/images/products/stash/icons/android-icon-48x48.png", "alt": "" }, "summary": "Use Stash to backup and restore any stateful workload using restic or volume snapshotting on any K8s cluster", @@ -119,7 +119,7 @@ "alt": "" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubevault/icons/android-icon-48x48.png", + "src": "/assets/images/products/kubevault/icons/android-icon-48x48.png", "alt": "" }, "summary": "Use KubeVault to provision HashiCorp Vault on Kubernetes and manage secrets in a Kubernetes native way", @@ -132,7 +132,7 @@ "alt": "" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeform/icons/android-icon-48x48.png", + "src": "/assets/images/products/kubeform/icons/android-icon-48x48.png", "alt": "" }, "summary": "Use Kubeform to provision and manage any cloud provider resources using Kubernetes CRDs & Terraform", @@ -145,7 +145,7 @@ "alt": "" }, "icon": { - "src": "https://cdn.appscode.com/images/products/guard/icons/android-icon-48x48.png", + "src": "/assets/images/products/guard/icons/android-icon-48x48.png", "alt": "" }, "summary": "Use Guard as a Kubernetes Webhook Authentication server to login users via Google, GitHub, Azure, LDAP, etc.", @@ -161,7 +161,7 @@ "alt": "" }, "icon": { - "src": "https://cdn.appscode.com/images/products/bytebuilders/solutions/telegram.png", + "src": "/assets/images/products/bytebuilders/solutions/telegram.png", "alt": "" }, "summary": "Run a Highly Available (HA) PostgreSQL database on any Kubernetes cluster using KubeDB", @@ -175,7 +175,7 @@ "alt": "" }, "icon": { - "src": "https://cdn.appscode.com/images/products/bytebuilders/solutions/shield-1.png", + "src": "/assets/images/products/bytebuilders/solutions/shield-1.png", "alt": "" }, "summary": "Run a multi-node Elasticsearch database on any Kubernetes cluster using KubeDB", @@ -189,7 +189,7 @@ "alt": "" }, "icon": { - "src": "https://cdn.appscode.com/images/products/bytebuilders/solutions/leave-2.png", + "src": "/assets/images/products/bytebuilders/solutions/leave-2.png", "alt": "" }, "summary": "Use Stash to backup and restore volumes of a Kubernetes workload running in Amazon EKS", @@ -203,7 +203,7 @@ "alt": "" }, "icon": { - "src": "https://cdn.appscode.com/images/products/bytebuilders/solutions/dribble.png", + "src": "/assets/images/products/bytebuilders/solutions/dribble.png", "alt": "" }, "summary": "Automatically backup of any workloads in your cluster and stay prepared for any disaster", @@ -217,7 +217,7 @@ "alt": "" }, "icon": { - "src": "https://cdn.appscode.com/images/products/bytebuilders/solutions/start-up.png", + "src": "/assets/images/products/bytebuilders/solutions/start-up.png", "alt": "" }, "summary": "Use Voyager — a HAProxy backed secure L7 and L4 ingress controller for Kubernetes", @@ -231,7 +231,7 @@ "alt": "" }, "icon": { - "src": "https://cdn.appscode.com/images/products/bytebuilders/solutions/home.png", + "src": "/assets/images/products/bytebuilders/solutions/home.png", "alt": "" }, "summary": "Provision and refresh free SSL certificates from Let's Encrypt using Voyager", @@ -245,7 +245,7 @@ "alt": "" }, "icon": { - "src": "https://cdn.appscode.com/images/products/bytebuilders/solutions/friends.png", + "src": "/assets/images/products/bytebuilders/solutions/friends.png", "alt": "" }, "summary": "Guard your Kubernetes cluster using GitHub, Gitlab, Google, Azure or LDAP", @@ -259,7 +259,7 @@ "alt": "" }, "icon": { - "src": "https://cdn.appscode.com/images/products/bytebuilders/solutions/trending.png", + "src": "/assets/images/products/bytebuilders/solutions/trending.png", "alt": "" }, "summary": "Deploy and manage HashiCorp Vault server Amazon EKS using KubeVault operator", diff --git a/data/products/configsyncer.json b/data/products/configsyncer.json index 337c170..74efc50 100644 --- a/data/products/configsyncer.json +++ b/data/products/configsyncer.json @@ -12,22 +12,22 @@ "themeColor": "" }, "heroImage": { - "src": "https://cdn.appscode.com/images/products/configsyncer/configsyncer-hero.png", + "src": "/assets/images/products/configsyncer/configsyncer-hero.png", "alt": "configsyncer" }, "logo": { - "src": "https://cdn.appscode.com/images/products/configsyncer/configsyncer.png", + "src": "/assets/images/products/configsyncer/configsyncer.png", "alt": "configsyncer" }, "logoWhite": { - "src": "https://cdn.appscode.com/images/products/configsyncer/configsyncer-white.png", + "src": "/assets/images/products/configsyncer/configsyncer-white.png", "alt": "configsyncer" }, "icon": { - "src": "https://cdn.appscode.com/images/products/configsyncer/configsyncer-512x512.svg", + "src": "/assets/images/products/configsyncer/configsyncer-512x512.svg", "alt": "configsyncer", "sizes": { - "192x192": "https://cdn.appscode.com/images/products/configsyncer/icons/android-icon-192x192.png" + "192x192": "/assets/images/products/configsyncer/icons/android-icon-192x192.png" } }, "repoURL": "https://github.com/config-syncer/docs", @@ -44,12 +44,12 @@ { "title": "Configuration Syncer", "image": { - "src": "https://cdn.appscode.com/images/products/configsyncer/features/feature-3.png", - "alt": "http" + "src": "/assets/images/products/configsyncer/features/configuration-syncer.jpg", + "alt": "configuration-syncer" }, "icon": { - "src": "https://cdn.appscode.com/images/products/configsyncer/features/configuration.svg", - "alt": "http" + "src": "/assets/images/products/configsyncer/features/configuration.svg", + "alt": "configuration-syncer" }, "summary": "", "description": "Keeps ConfigMaps and Secrets synchronized across Namespaces or Clusters" diff --git a/data/products/gateway.json b/data/products/gateway.json index a951db2..e3e7979 100644 --- a/data/products/gateway.json +++ b/data/products/gateway.json @@ -12,22 +12,22 @@ "themeColor": "#4d4dcb" }, "heroImage": { - "src": "https://cdn.appscode.com/images/products/voyager/voyager-hero.png", + "src": "/assets/images/products/voyager/voyager-hero.png", "alt": "Voyager" }, "logo": { - "src": "https://cdn.appscode.com/images/products/voyager/voyager.png", + "src": "/assets/images/products/voyager/voyager.png", "alt": "Voyager" }, "logoWhite": { - "src": "https://cdn.appscode.com/images/products/voyager/voyager-white.png", + "src": "/assets/images/products/voyager/voyager-white.png", "alt": "Voyager" }, "icon": { - "src": "https://cdn.appscode.com/images/products/voyager/voyager-icon.svg", + "src": "/assets/images/products/voyager/voyager-icon.svg", "alt": "Voyager", "sizes": { - "192x192": "https://cdn.appscode.com/images/products/voyager/icons/android-icon-192x192.png" + "192x192": "/assets/images/products/voyager/icons/android-icon-192x192.png" } }, "repoURL": "https://github.com/voyagermesh/gateway-docs", @@ -44,11 +44,11 @@ { "title": "HTTP & TCP", "image": { - "src": "https://cdn.appscode.com/images/products/voyager/features/feature-1.png", + "src": "/assets/images/products/voyager/features/feature-1.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/voyager/features/http.svg", + "src": "/assets/images/products/voyager/features/http.svg", "alt": "http" }, "summary": "", @@ -57,11 +57,11 @@ { "title": "SSL", "image": { - "src": "https://cdn.appscode.com/images/products/voyager/features/feature-2.png", + "src": "/assets/images/products/voyager/features/feature-2.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/voyager/features/ssl.svg", + "src": "/assets/images/products/voyager/features/ssl.svg", "alt": "http" }, "summary": "", @@ -70,11 +70,11 @@ { "title": "Platform support", "image": { - "src": "https://cdn.appscode.com/images/products/voyager/features/feature-3.png", + "src": "/assets/images/products/voyager/features/feature-3.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/voyager/features/platform.svg", + "src": "/assets/images/products/voyager/features/platform.svg", "alt": "http" }, "summary": "", @@ -83,11 +83,11 @@ { "title": "HAProxy", "image": { - "src": "https://cdn.appscode.com/images/products/voyager/features/feature-4.png", + "src": "/assets/images/products/voyager/features/feature-4.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/voyager/features/haproxy.svg", + "src": "/assets/images/products/voyager/features/haproxy.svg", "alt": "http" }, "summary": "", @@ -96,11 +96,11 @@ { "title": "Prometheus", "image": { - "src": "https://cdn.appscode.com/images/products/voyager/features/feature-5.png", + "src": "/assets/images/products/voyager/features/feature-5.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/voyager/features/prometheus.svg", + "src": "/assets/images/products/voyager/features/prometheus.svg", "alt": "http" }, "summary": "", @@ -109,11 +109,11 @@ { "title": "Let's Encrypt", "image": { - "src": "https://cdn.appscode.com/images/products/voyager/features/feature-6.png", + "src": "/assets/images/products/voyager/features/feature-6.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/voyager/features/encrypt.svg", + "src": "/assets/images/products/voyager/features/encrypt.svg", "alt": "http" }, "summary": "", diff --git a/data/products/guard.json b/data/products/guard.json index dc8b41f..ce7ff32 100644 --- a/data/products/guard.json +++ b/data/products/guard.json @@ -12,22 +12,22 @@ "themeColor": "" }, "heroImage": { - "src": "https://cdn.appscode.com/images/products/guard/guard-hero.png", + "src": "/assets/images/products/guard/guard-hero.png", "alt": "Guard" }, "logo": { - "src": "https://cdn.appscode.com/images/products/guard/guard.png", + "src": "/assets/images/products/guard/guard.png", "alt": "Guard" }, "logoWhite": { - "src": "https://cdn.appscode.com/images/products/guard/guard-white.png", + "src": "/assets/images/products/guard/guard-white.png", "alt": "Guard" }, "icon": { - "src": "https://cdn.appscode.com/images/products/guard/guard-512x512.svg", + "src": "/assets/images/products/guard/guard-512x512.svg", "alt": "Guard", "sizes": { - "192x192": "https://cdn.appscode.com/images/products/guard/icons/android-icon-192x192.png" + "192x192": "/assets/images/products/guard/icons/android-icon-192x192.png" } }, "repoURL": "https://github.com/kubeguard/docs", @@ -49,12 +49,12 @@ { "title": "Identity Providers", "image": { - "src": "https://cdn.appscode.com/images/products/guard/features/feature-1.png", - "alt": "http" + "src": "/assets/images/products/guard/features/identify-providers.jpg", + "alt": "identify-providers" }, "icon": { - "src": "https://cdn.appscode.com/images/products/guard/features/identity-providers.svg", - "alt": "http" + "src": "/assets/images/products/guard/features/identity-providers.svg", + "alt": "identify-providers" }, "summary": "", "description": "Guard supports Github and Google as identity providers" @@ -62,12 +62,12 @@ { "title": "CLI", "image": { - "src": "https://cdn.appscode.com/images/products/guard/features/feature-2.png", - "alt": "http" + "src": "/assets/images/products/guard/features/cli.jpg", + "alt": "cli" }, "icon": { - "src": "https://cdn.appscode.com/images/products/guard/features/cli.svg", - "alt": "http" + "src": "/assets/images/products/guard/features/cli.svg", + "alt": "cli" }, "summary": "", "description": "Guard comes with a cli to easily deploy in any Kubernetes cluster." @@ -75,12 +75,12 @@ { "title": "RBAC", "image": { - "src": "https://cdn.appscode.com/images/products/guard/features/feature-3.png", - "alt": "http" + "src": "/assets/images/products/guard/features/rbac.jpg", + "alt": "rbac" }, "icon": { - "src": "https://cdn.appscode.com/images/products/guard/features/rbac.svg", - "alt": "http" + "src": "/assets/images/products/guard/features/rbac.svg", + "alt": "rbac" }, "summary": "", "description": "This tutorial will show you how to use KubeDB in a RBAC enabled cluster." diff --git a/data/products/kubeci.json b/data/products/kubeci.json index 41e0eb9..43dcddc 100644 --- a/data/products/kubeci.json +++ b/data/products/kubeci.json @@ -13,22 +13,22 @@ }, "keywords": "kubernetes appscode ci", "heroImage": { - "src": "https://cdn.appscode.com/images/products/kubeci/kubeci-hero.png", + "src": "/assets/images/products/kubeci/kubeci-hero.png", "alt": "KubeCI" }, "logo": { - "src": "https://cdn.appscode.com/images/products/kubeci/kubeci.png", + "src": "/assets/images/products/kubeci/kubeci.png", "alt": "KubeCI" }, "logoWhite": { - "src": "https://cdn.appscode.com/images/products/kubeci/kubeci-white.png", + "src": "/assets/images/products/kubeci/kubeci-white.png", "alt": "KubeCI" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeci/kubeci-icon.png", + "src": "/assets/images/products/kubeci/kubeci-icon.png", "alt": "KubeCI", "sizes": { - "192x192": "https://cdn.appscode.com/images/products/kubeci/icons/android-icon-192x192.png" + "192x192": "/assets/images/products/kubeci/icons/android-icon-192x192.png" } }, "repoURL": "https://github.com/kube-ci/docs", @@ -50,11 +50,11 @@ { "title": "Lower administrative burden", "image": { - "src": "https://cdn.appscode.com/images/products/kubeci/features/feature-1.png", + "src": "/assets/images/products/kubeci/features/feature-1.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeci/features/http.png", + "src": "/assets/images/products/kubeci/features/http.png", "alt": "http" }, "summary": "", @@ -63,11 +63,11 @@ { "title": "Native Kubernetes Support", "image": { - "src": "https://cdn.appscode.com/images/products/kubeci/features/feature-2.png", + "src": "/assets/images/products/kubeci/features/feature-2.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeci/features/http.png", + "src": "/assets/images/products/kubeci/features/http.png", "alt": "http" }, "summary": "", @@ -76,11 +76,11 @@ { "title": "Performance", "image": { - "src": "https://cdn.appscode.com/images/products/kubeci/features/feature-3.png", + "src": "/assets/images/products/kubeci/features/feature-3.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeci/features/http.png", + "src": "/assets/images/products/kubeci/features/http.png", "alt": "http" }, "summary": "", @@ -89,11 +89,11 @@ { "title": "Availability and durability", "image": { - "src": "https://cdn.appscode.com/images/products/kubeci/features/feature-4.png", + "src": "/assets/images/products/kubeci/features/feature-4.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeci/features/http.png", + "src": "/assets/images/products/kubeci/features/http.png", "alt": "http" }, "summary": "", @@ -102,11 +102,11 @@ { "title": "Security", "image": { - "src": "https://cdn.appscode.com/images/products/kubeci/features/feature-5.png", + "src": "/assets/images/products/kubeci/features/feature-5.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeci/features/http.png", + "src": "/assets/images/products/kubeci/features/http.png", "alt": "http" }, "summary": "", @@ -115,11 +115,11 @@ { "title": "Manageability", "image": { - "src": "https://cdn.appscode.com/images/products/kubeci/features/feature-6.png", + "src": "/assets/images/products/kubeci/features/feature-6.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeci/features/http.png", + "src": "/assets/images/products/kubeci/features/http.png", "alt": "http" }, "summary": "", @@ -128,24 +128,24 @@ { "title": "Cost-effectiveness", "image": { - "src": "https://cdn.appscode.com/images/products/kubeci/features/feature-2.png", + "src": "/assets/images/products/kubeci/features/feature-2.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeci/features/http.png", + "src": "/assets/images/products/kubeci/features/http.png", "alt": "http" }, "summary": "", - "description": "KubeCI is free to use on any supported Kubernetes engines. There is no up-front investment required, and you pay only for the resources you use to your infrastructure provider. And, when you’re finished with a database instance, you can easily delete it." + "description": "KubeCI is free to use on any Kubernetes distribution. There is no up-front investment required, and you pay only for the resources you use to your infrastructure provider. And, when you’re finished with a database instance, you can easily delete it." }, { "title": "Open Source", "image": { - "src": "https://cdn.appscode.com/images/products/kubeci/features/feature-2.png", + "src": "/assets/images/products/kubeci/features/feature-2.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeci/features/http.png", + "src": "/assets/images/products/kubeci/features/http.png", "alt": "http" }, "summary": "", diff --git a/data/products/kubedb.json b/data/products/kubedb.json index 2faabdc..47b0ad2 100644 --- a/data/products/kubedb.json +++ b/data/products/kubedb.json @@ -13,22 +13,22 @@ }, "keywords": "kubernetes, kubernetes database, database high availability, postgresql kubernetes, elasticsearch kubernetes, mysql kubernetes, etcd, mariadb kubernetes, memcached, mongodb kubernetes, percona xtradb, redis, scaling kubernetes, version upgrade kubernetes, volume expansion kubernetes, kubernetes database management", "heroImage": { - "src": "https://cdn.appscode.com/images/products/kubedb/kubedb-hero.png", + "src": "/assets/images/products/kubedb/kubedb-hero.png", "alt": "KubeDB" }, "logo": { - "src": "https://cdn.appscode.com/images/products/kubedb/kubedb.svg", + "src": "/assets/images/products/kubedb/kubedb.svg", "alt": "KubeDB" }, "logoWhite": { - "src": "https://cdn.appscode.com/images/products/kubedb/kubedb-white.png", + "src": "/assets/images/products/kubedb/kubedb-white.png", "alt": "KubeDB" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubedb/kubedb-icon.svg", + "src": "/assets/images/products/kubedb/kubedb-icon.svg", "alt": "KubeDB", "sizes": { - "192x192": "https://cdn.appscode.com/images/products/kubedb/icons/android-icon-192x192.png" + "192x192": "/assets/images/products/kubedb/icons/android-icon-192x192.png" } }, "repoURL": "https://github.com/kubedb/docs", @@ -55,12 +55,12 @@ "title": "Lower administrative burden", "url": "provision-databases-on-kubernetes", "image": { - "src": "https://cdn.appscode.com/images/products/kubedb/features/easy-lg.png", - "alt": "http" + "src": "/assets/images/products/kubedb/features/easy-lg.jpg", + "alt": "Lower administrative burden" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubedb/features/dumbbell.png", - "alt": "http" + "src": "/assets/images/products/kubedb/features/dumbbell.png", + "alt": "Lower administrative burden" }, "summary": "", "description": "KubeDB simplifies many of the difficult or tedious management tasks of running a production grade databases on private and public clouds. Maintain one stack for all your stateless and stateful applications and simplify the operational complexity." @@ -69,12 +69,12 @@ "title": "Native Kubernetes Support", "url": "deploy-databases-in-kubernetes-native-way", "image": { - "src": "https://cdn.appscode.com/images/products/kubedb/features/multi-cloud-lg.png", - "alt": "http" + "src": "/assets/images/products/kubedb/features/multi-cloud-lg.jpg", + "alt": "Native Kubernetes Support" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubedb/features/kubernetes.png", - "alt": "http" + "src": "/assets/images/products/kubedb/features/kubernetes.png", + "alt": "Native Kubernetes Support" }, "summary": "", "description": "Runs on any Kubernetes distribution including OpenShift, Rancher, VMware Tanzu. If you can run Kubernetes, you can provision and manage databases using KubeDB. Use standard Kubernetes CLI and API to provision and manage databases." @@ -83,12 +83,12 @@ "title": "Performance", "url": "increase-database-performance-on-kubernetes", "image": { - "src": "https://cdn.appscode.com/images/products/kubedb/features/performance-lg.png", - "alt": "http" + "src": "/assets/images/products/kubedb/features/performance-lg.jpg", + "alt": "Performance" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubedb/features/muscle.png", - "alt": "http" + "src": "/assets/images/products/kubedb/features/muscle.png", + "alt": "Performance" }, "summary": "", "description": "KubeDB uses Persistent Volume Claims (PVC) to dynamically provision disks for database instances. Using appropriately defined StorageClasses, KubeDB provisioned database instances are designed to scale from small development workloads up to performance-intensive workloads on private and public cloud environments." @@ -97,12 +97,12 @@ "title": "Availability and durability", "url": "backup-restore-databases-on-kubernetes", "image": { - "src": "https://cdn.appscode.com/images/products/kubedb/features/availability-lg.png", - "alt": "http" + "src": "/assets/images/products/kubedb/features/availability-lg.jpg", + "alt": "Availability and durability" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubedb/features/last-24-hours.png", - "alt": "http" + "src": "/assets/images/products/kubedb/features/last-24-hours.png", + "alt": "Availability and durability" }, "summary": "", "description": "KubeDB will backup your database and transaction logs at a user defined frequency and store both for a user-specified retention period in a cloud object store (S3, GCS, etc.) or local filesystem (like NFS, etc.). You can also initiate one-off backups. KubeDB uses Stash by AppsCode to take deduplicated and encrypted backups so that you only incur the cost of incremental storage use. You can create a new instance from a database snapshots whenever you desire." @@ -111,12 +111,12 @@ "title": "Manageability", "url": "monitor-databases-on-kubernetes", "image": { - "src": "https://cdn.appscode.com/images/products/kubedb/features/monitoring-lg.png", - "alt": "http" + "src": "/assets/images/products/kubedb/features/monitoring-lg.jpg", + "alt": "Manageability" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubedb/features/prometheus.svg", - "alt": "http" + "src": "/assets/images/products/kubedb/features/prometheus.svg", + "alt": "Manageability" }, "summary": "", "description": "KubeDB comes with native support for monitoring via Prometheus. You can use builtin Prometheus scrapper or CoreOS Prometheus Operator to monitor KubeDB supported databases as well as KubeDB operator itself. You can use the Grafana to view key operational metrics, including compute/memory/storage capacity utilization, I/O activity, and instance connections. You can also use any metrics solutions like Datadog with KubeDB." @@ -125,26 +125,26 @@ "title": "Cost-effectiveness", "url": "manage-database-on-kubernetes-free", "image": { - "src": "https://cdn.appscode.com/images/products/kubedb/features/low-price-lg.png", - "alt": "http" + "src": "/assets/images/products/kubedb/features/low-price-lg.jpg", + "alt": "Cost-effectiveness" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubedb/features/low-price.png", - "alt": "http" + "src": "/assets/images/products/kubedb/features/low-price.png", + "alt": "Cost-effectiveness" }, "summary": "", - "description": "KubeDB is free to use on any supported Kubernetes engines. There is no up-front investment required, and you pay only for the resources you use to your infrastructure provider. And, when you’re finished with a database instance, you can easily delete it." + "description": "KubeDB is free to try on any Kubernetes distribution. There is no up-front investment required, and you pay only for the resources you use to your infrastructure provider. And, when you’re finished with a database instance, you can easily delete it." }, { "title": "Security", "url": "secure-databases-on-kubernetes", "image": { - "src": "https://cdn.appscode.com/images/products/kubedb/features/security-lg.png", - "alt": "http" + "src": "/assets/images/products/kubedb/features/security-lg.jpg", + "alt": "Security" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubedb/features/security-lock.png", - "alt": "http" + "src": "/assets/images/products/kubedb/features/security-lock.png", + "alt": "Security" }, "summary": "", "description": "You can secure your Databases with TLS using KubeDB. Also, KubeDB allows you to use encrypted storage for your databases using keys you manage through your cloud provider’s key management service." @@ -156,6 +156,22 @@ "hostDocs": false, "show": true }, + { + "version": "v2024.9.30", + "hostDocs": true, + "show": true, + "info": { + "autoscaler": "v0.33.0", + "cli": "v0.48.0", + "dashboard": "v0.24.0", + "installer": "v2024.9.30", + "ops-manager": "v0.35.0", + "provisioner": "v0.48.0", + "schema-manager": "v0.24.0", + "ui-server": "v0.24.0", + "webhook-server": "v0.24.0" + } + }, { "version": "v2024.8.21", "hostDocs": true, @@ -1126,7 +1142,7 @@ "hostDocs": false } ], - "latestVersion": "v2024.8.21", + "latestVersion": "v2024.9.30", "socialLinks": { "facebook": "https://facebook.com/appscode", "github": "https://github.com/kubedb", diff --git a/data/products/kubedb/single-features-data/cost-effectiveness.json b/data/products/kubedb/single-features-data/cost-effectiveness.json index bc97d5d..77a8786 100644 --- a/data/products/kubedb/single-features-data/cost-effectiveness.json +++ b/data/products/kubedb/single-features-data/cost-effectiveness.json @@ -1,12 +1,12 @@ { "id": "cost-effectiveness", "title": "Deploy & Manage Databases on Kubernetes FREE", - "meta": "KubeDB is FREE to use on any supported Kubernetes engines. You can deploy and manage your database on Kubernetes FREE", + "meta": "KubeDB is FREE to try on any Kubernetes distribution. You can deploy and manage your database on Kubernetes FREE", "innerContent": [ { "id": 1, "title": "Cost-effectiveness", - "description": "KubeDB is FREE to use on any supported Kubernetes engines. You can deploy and manage your databases on Kubernetes using KubeDB. There is no up-front investment required. We offer a 30 days license FREE of cost to try KubeDB.", + "description": "KubeDB is FREE to try on any Kubernetes distribution. You can deploy and manage your databases on Kubernetes using KubeDB. There is no up-front investment required. We offer a 30 days license FREE of cost to try KubeDB.", "img": "/assets/images/features/illustrations/cost-effectoveness.jpg" }, { diff --git a/data/products/kubeform.json b/data/products/kubeform.json index c3e3945..d7b58dd 100644 --- a/data/products/kubeform.json +++ b/data/products/kubeform.json @@ -13,22 +13,22 @@ }, "keywords": "kubernetes appscode terraform kubeform crd", "heroImage": { - "src": "https://cdn.appscode.com/images/products/kubeform/kubeform-hero.png", + "src": "/assets/images/products/kubeform/kubeform-hero.png", "alt": "Kubeform" }, "logo": { - "src": "https://cdn.appscode.com/images/products/kubeform/kubeform.png", + "src": "/assets/images/products/kubeform/kubeform.png", "alt": "Kubeform" }, "logoWhite": { - "src": "https://cdn.appscode.com/images/products/kubeform/kubeform-white.png", + "src": "/assets/images/products/kubeform/kubeform-white.png", "alt": "Kubeform" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeform/kubeform-icon.svg", + "src": "/assets/images/products/kubeform/kubeform-icon.svg", "alt": "Kubeform", "sizes": { - "192x192": "https://cdn.appscode.com/images/products/kubeform/icons/android-icon-192x192.png" + "192x192": "/assets/images/products/kubeform/icons/android-icon-192x192.png" } }, "repoURL": "https://github.com/kubeform/kubeform", @@ -45,11 +45,11 @@ { "title": "Native Kubernetes Support", "image": { - "src": "https://cdn.appscode.com/images/products/kubeform/features/feature-1.png", + "src": "/assets/images/products/kubeform/features/feature-1.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeform/features/kubernetes.png", + "src": "/assets/images/products/kubeform/features/kubernetes.png", "alt": "http" }, "summary": "", @@ -58,11 +58,11 @@ { "title": "Built on Terrafrom", "image": { - "src": "https://cdn.appscode.com/images/products/kubeform/features/feature-2.png", + "src": "/assets/images/products/kubeform/features/feature-2.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeform/features/terraform.png", + "src": "/assets/images/products/kubeform/features/terraform.png", "alt": "http" }, "summary": "", @@ -71,11 +71,11 @@ { "title": "Infrastructure as Code", "image": { - "src": "https://cdn.appscode.com/images/products/kubeform/features/feature-3.png", + "src": "/assets/images/products/kubeform/features/feature-3.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeform/features/source-code.png", + "src": "/assets/images/products/kubeform/features/source-code.png", "alt": "http" }, "summary": "", @@ -84,11 +84,11 @@ { "title": "Supports Multiple Cloud Platform", "image": { - "src": "https://cdn.appscode.com/images/products/kubeform/features/feature-4.png", + "src": "/assets/images/products/kubeform/features/feature-4.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeform/features/clouds.png", + "src": "/assets/images/products/kubeform/features/clouds.png", "alt": "http" }, "summary": "", @@ -97,11 +97,11 @@ { "title": "Unleash Developer Velocity", "image": { - "src": "https://cdn.appscode.com/images/products/kubeform/features/feature-5.png", + "src": "/assets/images/products/kubeform/features/feature-5.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeform/features/speed.png", + "src": "/assets/images/products/kubeform/features/speed.png", "alt": "http" }, "summary": "", diff --git a/data/products/kubeshield.json b/data/products/kubeshield.json index 13474a6..ba00ae7 100644 --- a/data/products/kubeshield.json +++ b/data/products/kubeshield.json @@ -13,22 +13,22 @@ }, "keywords": "kubernetes appscode kubeshield security scanner", "heroImage": { - "src": "https://cdn.appscode.com/images/products/kubeshield/kubeshield-hero.png", + "src": "/assets/images/products/kubeshield/kubeshield-hero.png", "alt": "Kubeshield" }, "logo": { - "src": "https://cdn.appscode.com/images/products/kubeshield/kubeshield.png", + "src": "/assets/images/products/kubeshield/kubeshield.png", "alt": "Kubeshield" }, "logoWhite": { - "src": "https://cdn.appscode.com/images/products/kubeshield/kubeshield-white.png", + "src": "/assets/images/products/kubeshield/kubeshield-white.png", "alt": "Kubeshield" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeshield/kubeshield-icon.png", + "src": "/assets/images/products/kubeshield/kubeshield-icon.png", "alt": "Kubeshield", "sizes": { - "192x192": "https://cdn.appscode.com/images/products/kubeshield/icons/android-icon-192x192.png" + "192x192": "/assets/images/products/kubeshield/icons/android-icon-192x192.png" } }, "repoURL": "https://github.com/kubeshield/scanner", @@ -50,11 +50,11 @@ { "title": "Automatic Initialization & Unsealing", "image": { - "src": "https://cdn.appscode.com/images/products/kubeshield/features/feature-1.png", + "src": "/assets/images/products/kubeshield/features/feature-1.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeshield/features/http.png", + "src": "/assets/images/products/kubeshield/features/http.png", "alt": "http" }, "summary": "", @@ -63,11 +63,11 @@ { "title": "Manage Vault Policy", "image": { - "src": "https://cdn.appscode.com/images/products/kubeshield/features/feature-2.png", + "src": "/assets/images/products/kubeshield/features/feature-2.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeshield/features/http.png", + "src": "/assets/images/products/kubeshield/features/http.png", "alt": "http" }, "summary": "", @@ -76,11 +76,11 @@ { "title": "AWS Secret Engine", "image": { - "src": "https://cdn.appscode.com/images/products/kubeshield/features/feature-3.png", + "src": "/assets/images/products/kubeshield/features/feature-3.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeshield/features/http.png", + "src": "/assets/images/products/kubeshield/features/http.png", "alt": "http" }, "summary": "", @@ -89,11 +89,11 @@ { "title": "Azure Secret Engine", "image": { - "src": "https://cdn.appscode.com/images/products/kubeshield/features/feature-4.png", + "src": "/assets/images/products/kubeshield/features/feature-4.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeshield/features/http.png", + "src": "/assets/images/products/kubeshield/features/http.png", "alt": "http" }, "summary": "", @@ -102,11 +102,11 @@ { "title": "GCP Secret Engine", "image": { - "src": "https://cdn.appscode.com/images/products/kubeshield/features/feature-5.png", + "src": "/assets/images/products/kubeshield/features/feature-5.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeshield/features/http.png", + "src": "/assets/images/products/kubeshield/features/http.png", "alt": "http" }, "summary": "", @@ -115,11 +115,11 @@ { "title": "Database Secret Engine", "image": { - "src": "https://cdn.appscode.com/images/products/kubeshield/features/feature-6.png", + "src": "/assets/images/products/kubeshield/features/feature-6.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubeshield/features/http.png", + "src": "/assets/images/products/kubeshield/features/http.png", "alt": "http" }, "summary": "", diff --git a/data/products/kubestash.json b/data/products/kubestash.json index 4e906fe..0dbeb7b 100644 --- a/data/products/kubestash.json +++ b/data/products/kubestash.json @@ -14,31 +14,31 @@ "keywords": "kubernetes appscode backup disaster recovery volume", "heroSlider": [ { - "src": "https://cdn.appscode.com/images/products/stash/slider/applications.jpg", + "src": "/assets/images/products/stash/slider/applications.jpg", "alt": "Supported Applications" }, { - "src": "https://cdn.appscode.com/images/products/stash/slider/platforms.jpg", + "src": "/assets/images/products/stash/slider/platforms.jpg", "alt": "Supported Platforms" }, { - "src": "https://cdn.appscode.com/images/products/stash/slider/storage.jpg", + "src": "/assets/images/products/stash/slider/storage.jpg", "alt": "Supported Storage" } ], "logo": { - "src": "https://cdn.appscode.com/images/products/kubestash/kubestash.png", + "src": "/assets/images/products/kubestash/kubestash.png", "alt": "kubestash" }, "logoWhite": { - "src": "https://cdn.appscode.com/images/products/kubestash/kubestash-white.png", + "src": "/assets/images/products/kubestash/kubestash-white.png", "alt": "kubestash" }, "icon": { - "src": "https://cdn.appscode.com/images/products/stash/stash-icon.svg", + "src": "/assets/images/products/stash/stash-icon.svg", "alt": "Stash", "sizes": { - "192x192": "https://cdn.appscode.com/images/products/stash/icons/android-icon-192x192.png" + "192x192": "/assets/images/products/stash/icons/android-icon-192x192.png" } }, "repoURL": "https://github.com/kubestash/docs", @@ -55,11 +55,11 @@ { "title": "Declarative API", "image": { - "src": "https://cdn.appscode.com/images/addons/illustrations/declarative-api.png", + "src": "/assets/images/addons/illustrations/declarative-api.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/stash/features/declarative-api.svg", + "src": "/assets/images/products/stash/features/declarative-api.svg", "alt": "http" }, "summary": "", @@ -68,11 +68,11 @@ { "title": "Backup Kubernetes Volumes", "image": { - "src": "https://cdn.appscode.com/images/addons/illustrations/backup-kubernetes-volumes.png", + "src": "/assets/images/addons/illustrations/backup-kubernetes-volumes.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/stash/features/vol.svg", + "src": "/assets/images/products/stash/features/vol.svg", "alt": "http" }, "summary": "", @@ -81,11 +81,11 @@ { "title": "Backup Database", "image": { - "src": "https://cdn.appscode.com/images/addons/illustrations/backup-restore-databases.png", + "src": "/assets/images/addons/illustrations/backup-restore-databases.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/stash/features/backup-icon.png", + "src": "/assets/images/products/stash/features/backup-icon.png", "alt": "http" }, "summary": "", @@ -94,11 +94,11 @@ { "title": "Multiple Storage Support", "image": { - "src": "https://cdn.appscode.com/images/addons/illustrations/multiple-storage-support.png", + "src": "/assets/images/addons/illustrations/multiple-storage-support.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/stash/features/storage-icon.png", + "src": "/assets/images/products/stash/features/storage-icon.png", "alt": "http" }, "summary": "", @@ -107,11 +107,11 @@ { "title": "Deduplication", "image": { - "src": "https://cdn.appscode.com/images/addons/illustrations/deduplication.png", + "src": "/assets/images/addons/illustrations/deduplication.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/stash/features/compare-icon.png", + "src": "/assets/images/products/stash/features/compare-icon.png", "alt": "http" }, "summary": "", @@ -120,11 +120,11 @@ { "title": "Data Encryption", "image": { - "src": "https://cdn.appscode.com/images/addons/illustrations/data-encryption.png", + "src": "/assets/images/addons/illustrations/data-encryption.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/stash/features/encryption-icon.png", + "src": "/assets/images/products/stash/features/encryption-icon.png", "alt": "http" }, "summary": "", @@ -133,11 +133,11 @@ { "title": "Volume Snapshot", "image": { - "src": "https://cdn.appscode.com/images/addons/illustrations/volume-snapshot.png", + "src": "/assets/images/addons/illustrations/volume-snapshot.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/stash/features/volume-snapshot.png", + "src": "/assets/images/products/stash/features/volume-snapshot.png", "alt": "http" }, "summary": "", @@ -146,11 +146,11 @@ { "title": "Policy Based Backup", "image": { - "src": "https://cdn.appscode.com/images/addons/illustrations/policy-based-backup.png", + "src": "/assets/images/addons/illustrations/policy-based-backup.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/stash/features/policy-based-icon.png", + "src": "/assets/images/products/stash/features/policy-based-icon.png", "alt": "http" }, "summary": "", @@ -159,11 +159,11 @@ { "title": "Monitoring", "image": { - "src": "https://cdn.appscode.com/images/addons/illustrations/monitoring.png", + "src": "/assets/images/addons/illustrations/monitoring.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/stash/features/prometheus.svg", + "src": "/assets/images/products/stash/features/prometheus.svg", "alt": "http" }, "summary": "", @@ -176,6 +176,15 @@ "hostDocs": false, "show": true }, + { + "version": "v2024.9.30", + "hostDocs": true, + "show": true, + "info": { + "cli": "v0.12.0", + "installer": "v2024.9.30" + } + }, { "version": "v2024.8.30", "hostDocs": true, @@ -231,7 +240,7 @@ } } ], - "latestVersion": "v2024.8.30", + "latestVersion": "v2024.9.30", "socialLinks": { "facebook": "https://facebook.com/appscode", "github": "https://github.com/kubestash", diff --git a/data/products/kubevault.json b/data/products/kubevault.json index 48df11c..17b20c1 100644 --- a/data/products/kubevault.json +++ b/data/products/kubevault.json @@ -13,22 +13,22 @@ }, "keywords": "kubernetes, hashicorp vault, vault kubernetes, appscode, vault secret, certificates, security, access tokens, tls, secret engines, user management", "heroImage": { - "src": "https://cdn.appscode.com/images/products/kubevault/kubevault-hero.png", + "src": "/assets/images/products/kubevault/kubevault-hero.png", "alt": "KubeVault" }, "logo": { - "src": "https://cdn.appscode.com/images/products/kubevault/kubevault.png", + "src": "/assets/images/products/kubevault/kubevault.png", "alt": "KubeVault" }, "logoWhite": { - "src": "https://cdn.appscode.com/images/products/kubevault/kubevault-white.png", + "src": "/assets/images/products/kubevault/kubevault-white.png", "alt": "KubeVault" }, "icon": { - "src": "https://cdn.appscode.com/images/products/kubevault/kubevault-icon.svg", + "src": "/assets/images/products/kubevault/kubevault-icon.svg", "alt": "KubeVault", "sizes": { - "192x192": "https://cdn.appscode.com/images/products/kubevault/icons/android-icon-192x192.png" + "192x192": "/assets/images/products/kubevault/icons/android-icon-192x192.png" } }, "repoURL": "https://github.com/kubevault/kubevault", @@ -222,6 +222,17 @@ "hostDocs": false, "show": true }, + { + "version": "v2024.9.30", + "hostDocs": true, + "show": true, + "info": { + "cli": "v0.19.0", + "installer": "v2024.9.30", + "operator": "v0.19.0", + "unsealer": "v0.19.0" + } + }, { "version": "v2024.3.12", "hostDocs": true, @@ -430,7 +441,7 @@ } } ], - "latestVersion": "v2024.3.12", + "latestVersion": "v2024.9.30", "socialLinks": { "facebook": "https://facebook.com/appscode", "github": "https://github.com/kubevault", diff --git a/data/products/pharmer.json b/data/products/pharmer.json index 400170f..3f81e2d 100644 --- a/data/products/pharmer.json +++ b/data/products/pharmer.json @@ -13,22 +13,22 @@ }, "keywords": "kubernetes appscode cluster management upgrades", "heroImage": { - "src": "https://cdn.appscode.com/images/products/pharmer/pharmer-hero.png", + "src": "/assets/images/products/pharmer/pharmer-hero.png", "alt": "Pharmer" }, "logo": { - "src": "https://cdn.appscode.com/images/products/pharmer/pharmer.png", + "src": "/assets/images/products/pharmer/pharmer.png", "alt": "Pharmer" }, "logoWhite": { - "src": "https://cdn.appscode.com/images/products/pharmer/pharmer-white.png", + "src": "/assets/images/products/pharmer/pharmer-white.png", "alt": "Pharmer" }, "icon": { - "src": "https://cdn.appscode.com/images/products/pharmer/pharmer-icon.png", + "src": "/assets/images/products/pharmer/pharmer-icon.png", "alt": "Pharmer", "sizes": { - "192x192": "https://cdn.appscode.com/images/products/pharmer/icons/android-icon-192x192.png" + "192x192": "/assets/images/products/pharmer/icons/android-icon-192x192.png" } }, "repoURL": "https://github.com/pharmer/docs", @@ -50,11 +50,11 @@ { "title": "Kubeadm", "image": { - "src": "https://cdn.appscode.com/images/products/pharmer/features/feature-1.png", + "src": "/assets/images/products/pharmer/features/feature-1.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/pharmer/features/kubeadm.svg", + "src": "/assets/images/products/pharmer/features/kubeadm.svg", "alt": "http" }, "summary": "", @@ -63,11 +63,11 @@ { "title": "Platform Support", "image": { - "src": "https://cdn.appscode.com/images/products/pharmer/features/feature-2.png", + "src": "/assets/images/products/pharmer/features/feature-2.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/pharmer/features/platform-support.svg", + "src": "/assets/images/products/pharmer/features/platform-support.svg", "alt": "http" }, "summary": "", @@ -76,11 +76,11 @@ { "title": "Kubernetes Certification", "image": { - "src": "https://cdn.appscode.com/images/products/pharmer/features/feature-3.png", + "src": "/assets/images/products/pharmer/features/feature-3.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/pharmer/features/kubernetes.svg", + "src": "/assets/images/products/pharmer/features/kubernetes.svg", "alt": "http" }, "summary": "", diff --git a/data/products/searchlight.json b/data/products/searchlight.json index 93611e9..2b2bda5 100644 --- a/data/products/searchlight.json +++ b/data/products/searchlight.json @@ -12,22 +12,22 @@ "themeColor": "" }, "heroImage": { - "src": "https://cdn.appscode.com/images/products/searchlight/searchlight-hero.png", + "src": "/assets/images/products/searchlight/searchlight-hero.png", "alt": "Searchlight" }, "logo": { - "src": "https://cdn.appscode.com/images/products/searchlight/searchlight.png", + "src": "/assets/images/products/searchlight/searchlight.png", "alt": "Searchlight" }, "logoWhite": { - "src": "https://cdn.appscode.com/images/products/searchlight/searchlight-white.png", + "src": "/assets/images/products/searchlight/searchlight-white.png", "alt": "Searchlight" }, "icon": { - "src": "https://cdn.appscode.com/images/products/searchlight/searchlight-icon.png", + "src": "/assets/images/products/searchlight/searchlight-icon.png", "alt": "Searchlight", "sizes": { - "192x192": "https://cdn.appscode.com/images/products/searchlight/icons/android-icon-192x192.png" + "192x192": "/assets/images/products/searchlight/icons/android-icon-192x192.png" } }, "repoURL": "https://github.com/searchlight/searchlight", @@ -49,11 +49,11 @@ { "title": "Monitor Kubernetes", "image": { - "src": "https://cdn.appscode.com/images/products/searchlight/features/feature-1.png", + "src": "/assets/images/products/searchlight/features/feature-1.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/searchlight/features/monitor-kubernetes.svg", + "src": "/assets/images/products/searchlight/features/monitor-kubernetes.svg", "alt": "http" }, "summary": "", @@ -62,11 +62,11 @@ { "title": "Icinga 2", "image": { - "src": "https://cdn.appscode.com/images/products/searchlight/features/feature-2.png", + "src": "/assets/images/products/searchlight/features/feature-2.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/searchlight/features/icinga.svg", + "src": "/assets/images/products/searchlight/features/icinga.svg", "alt": "http" }, "summary": "", @@ -75,11 +75,11 @@ { "title": "Notifier Support", "image": { - "src": "https://cdn.appscode.com/images/products/searchlight/features/feature-3.png", + "src": "/assets/images/products/searchlight/features/feature-3.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/searchlight/features/notifier.svg", + "src": "/assets/images/products/searchlight/features/notifier.svg", "alt": "http" }, "summary": "", diff --git a/data/products/service-broker.json b/data/products/service-broker.json index dc55eb6..c2bddb3 100644 --- a/data/products/service-broker.json +++ b/data/products/service-broker.json @@ -12,22 +12,22 @@ "themeColor": "" }, "heroImage": { - "src": "https://cdn.appscode.com/images/products/service-broker/service-broker-hero.png", + "src": "/assets/images/products/service-broker/service-broker-hero.png", "alt": "ServiceBroker" }, "logo": { - "src": "https://cdn.appscode.com/images/products/service-broker/service-broker.png", + "src": "/assets/images/products/service-broker/service-broker.png", "alt": "ServiceBroker" }, "logoWhite": { - "src": "https://cdn.appscode.com/images/products/service-broker/service-broker-white.png", + "src": "/assets/images/products/service-broker/service-broker-white.png", "alt": "ServiceBroker" }, "icon": { - "src": "https://cdn.appscode.com/images/products/service-broker/service-broker-icon.png", + "src": "/assets/images/products/service-broker/service-broker-icon.png", "alt": "ServiceBroker", "sizes": { - "192x192": "https://cdn.appscode.com/images/products/service-broker/icons/android-icon-192x192.png" + "192x192": "/assets/images/products/service-broker/icons/android-icon-192x192.png" } }, "repoURL": "https://github.com/appscode/service-broker", @@ -49,11 +49,11 @@ { "title": "KubeDB Support", "image": { - "src": "https://cdn.appscode.com/images/products/service-broker/features/feature-1.png", + "src": "/assets/images/products/service-broker/features/feature-1.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/service-broker/features/kubedb.png", + "src": "/assets/images/products/service-broker/features/kubedb.png", "alt": "http" }, "summary": "", @@ -62,11 +62,11 @@ { "title": "Prometheus", "image": { - "src": "https://cdn.appscode.com/images/products/service-broker/features/feature-2.png", + "src": "/assets/images/products/service-broker/features/feature-2.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/service-broker/features/prometheus.svg", + "src": "/assets/images/products/service-broker/features/prometheus.svg", "alt": "http" }, "summary": "", @@ -75,11 +75,11 @@ { "title": "Kubeapps", "image": { - "src": "https://cdn.appscode.com/images/products/service-broker/features/feature-3.png", + "src": "/assets/images/products/service-broker/features/feature-3.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/service-broker/features/kubeapps.png", + "src": "/assets/images/products/service-broker/features/kubeapps.png", "alt": "http" }, "summary": "", diff --git a/data/products/stash-cli.json b/data/products/stash-cli.json index c35c800..16e0ee3 100644 --- a/data/products/stash-cli.json +++ b/data/products/stash-cli.json @@ -22,6 +22,87 @@ "hostDocs": false, "show": true }, + { + "version": "v0.36.0", + "hostDocs": true, + "show": true, + "info": { + "stash": "v2024.9.30", + "stash-community": "v0.36.0", + "stash-elasticsearch": [ + "5.6.4-v32", + "6.2.4-v32", + "6.3.0-v32", + "6.4.0-v32", + "6.5.3-v32", + "6.8.0-v32", + "7.14.0-v18", + "7.2.0-v32", + "7.3.2-v32", + "8.2.0-v15" + ], + "stash-enterprise": "v0.36.0", + "stash-etcd": [ + "3.5.0-v19" + ], + "stash-installer": "v2024.9.30", + "stash-kubedump": [ + "0.1.0-v15" + ], + "stash-mariadb": [ + "10.5.8-v26" + ], + "stash-mongodb": [ + "3.4.17-v33", + "3.4.22-v33", + "3.6.13-v33", + "3.6.8-v33", + "4.0.11-v33", + "4.0.3-v33", + "4.0.5-v33", + "4.1.13-v33", + "4.1.4-v33", + "4.1.7-v33", + "4.2.3-v33", + "4.4.6-v24", + "5.0.15-v6", + "5.0.3-v21", + "6.0.5-v9" + ], + "stash-mysql": [ + "5.7.25-v32", + "8.0.14-v32", + "8.0.21-v26", + "8.0.3-v32" + ], + "stash-nats": [ + "2.6.1-v20", + "2.8.2-v15" + ], + "stash-perconaxtradb": [ + "5.7-v27" + ], + "stash-postgres": [ + "10.14-v31", + "11.9-v31", + "12.4-v31", + "13.1-v28", + "14.0-v20", + "15.1-v12", + "16.1-v1", + "9.6.19-v31" + ], + "stash-redis": [ + "5.0.13-v20", + "6.2.5-v20", + "7.0.5-v13" + ], + "stash-ui-server": "v0.17.0", + "stash-vault": [ + "1.10.3-v12" + ] + } + }, { "version": "v0.35.0", "hostDocs": true, @@ -2505,5 +2586,5 @@ "show": true } ], - "latestVersion": "v0.35.0" + "latestVersion": "v0.36.0" } diff --git a/data/products/stash-mongodb.json b/data/products/stash-mongodb.json index d434117..ac2bead 100644 --- a/data/products/stash-mongodb.json +++ b/data/products/stash-mongodb.json @@ -27,6 +27,11 @@ "hostDocs": false, "show": true }, + { + "version": "6.0.5-v9", + "hostDocs": true, + "show": true + }, { "version": "6.0.5-v8", "hostDocs": true, @@ -64,6 +69,11 @@ "version": "6.0.5-v1", "hostDocs": true }, + { + "version": "5.0.15-v6", + "hostDocs": true, + "show": true + }, { "version": "5.0.15-v5", "hostDocs": true, @@ -93,6 +103,11 @@ "version": "5.0.15", "hostDocs": true }, + { + "version": "5.0.3-v21", + "hostDocs": true, + "show": true + }, { "version": "5.0.3-v20", "hostDocs": true, @@ -193,6 +208,11 @@ "hostDocs": true, "show": true }, + { + "version": "4.4.6-v24", + "hostDocs": true, + "show": true + }, { "version": "4.4.6-v23", "hostDocs": true, @@ -308,6 +328,11 @@ "hostDocs": true, "show": true }, + { + "version": "4.2.3-v33", + "hostDocs": true, + "show": true + }, { "version": "4.2.3-v32", "hostDocs": true, @@ -490,6 +515,11 @@ "hostDocs": true, "show": true }, + { + "version": "4.1.13-v33", + "hostDocs": true, + "show": true + }, { "version": "4.1.13-v32", "hostDocs": true, @@ -650,6 +680,11 @@ "hostDocs": true, "show": true }, + { + "version": "4.1.7-v33", + "hostDocs": true, + "show": true + }, { "version": "4.1.7-v32", "hostDocs": true, @@ -832,6 +867,11 @@ "hostDocs": true, "show": true }, + { + "version": "4.1.4-v33", + "hostDocs": true, + "show": true + }, { "version": "4.1.4-v32", "hostDocs": true, @@ -1036,6 +1076,11 @@ "version": "4.1.1-beta.20200708", "hostDocs": true }, + { + "version": "4.0.11-v33", + "hostDocs": true, + "show": true + }, { "version": "4.0.11-v32", "hostDocs": true, @@ -1206,6 +1251,11 @@ "hostDocs": true, "show": true }, + { + "version": "4.0.5-v33", + "hostDocs": true, + "show": true + }, { "version": "4.0.5-v32", "hostDocs": true, @@ -1388,6 +1438,11 @@ "hostDocs": true, "show": true }, + { + "version": "4.0.3-v33", + "hostDocs": true, + "show": true + }, { "version": "4.0.3-v32", "hostDocs": true, @@ -1582,6 +1637,11 @@ "version": "4.0.1-beta.20200708", "hostDocs": true }, + { + "version": "3.6.13-v33", + "hostDocs": true, + "show": true + }, { "version": "3.6.13-v32", "hostDocs": true, @@ -1742,6 +1802,11 @@ "hostDocs": true, "show": true }, + { + "version": "3.6.8-v33", + "hostDocs": true, + "show": true + }, { "version": "3.6.8-v32", "hostDocs": true, @@ -1946,6 +2011,11 @@ "version": "3.6.1-beta.20200708", "hostDocs": true }, + { + "version": "3.4.22-v33", + "hostDocs": true, + "show": true + }, { "version": "3.4.22-v32", "hostDocs": true, @@ -2106,6 +2176,11 @@ "hostDocs": true, "show": true }, + { + "version": "3.4.17-v33", + "hostDocs": true, + "show": true + }, { "version": "3.4.17-v32", "hostDocs": true, @@ -2311,5 +2386,5 @@ "hostDocs": true } ], - "latestVersion": "6.0.5-v8" + "latestVersion": "6.0.5-v9" } diff --git a/data/products/stash.json b/data/products/stash.json index 4b85ae1..730d5c8 100644 --- a/data/products/stash.json +++ b/data/products/stash.json @@ -14,31 +14,31 @@ "keywords": "kubernetes appscode backup disaster recovery volume", "heroSlider": [ { - "src": "https://cdn.appscode.com/images/products/stash/slider/applications.jpg", + "src": "/assets/images/products/stash/slider/applications.jpg", "alt": "Supported Applications" }, { - "src": "https://cdn.appscode.com/images/products/stash/slider/platforms.jpg", + "src": "/assets/images/products/stash/slider/platforms.jpg", "alt": "Supported Platforms" }, { - "src": "https://cdn.appscode.com/images/products/stash/slider/storage.jpg", + "src": "/assets/images/products/stash/slider/storage.jpg", "alt": "Supported Storage" } ], "logo": { - "src": "https://cdn.appscode.com/images/products/stash/stash.png", + "src": "/assets/images/products/stash/stash.png", "alt": "Stash" }, "logoWhite": { - "src": "https://cdn.appscode.com/images/products/stash/stash-white.png", + "src": "/assets/images/products/stash/stash-white.png", "alt": "Stash" }, "icon": { - "src": "https://cdn.appscode.com/images/products/stash/stash-icon.svg", + "src": "/assets/images/products/stash/stash-icon.svg", "alt": "Stash", "sizes": { - "192x192": "https://cdn.appscode.com/images/products/stash/icons/android-icon-192x192.png" + "192x192": "/assets/images/products/stash/icons/android-icon-192x192.png" } }, "repoURL": "https://github.com/stashed/docs", @@ -60,11 +60,11 @@ { "title": "Declarative API", "image": { - "src": "https://cdn.appscode.com/images/addons/illustrations/declarative-api.png", + "src": "/assets/images/addons/illustrations/declarative-api.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/stash/features/declarative-api.svg", + "src": "/assets/images/products/stash/features/declarative-api.svg", "alt": "http" }, "summary": "", @@ -73,11 +73,11 @@ { "title": "Backup Kubernetes Volumes", "image": { - "src": "https://cdn.appscode.com/images/addons/illustrations/backup-kubernetes-volumes.png", + "src": "/assets/images/addons/illustrations/backup-kubernetes-volumes.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/stash/features/vol.svg", + "src": "/assets/images/products/stash/features/vol.svg", "alt": "http" }, "summary": "", @@ -86,11 +86,11 @@ { "title": "Backup Database", "image": { - "src": "https://cdn.appscode.com/images/addons/illustrations/backup-restore-databases.png", + "src": "/assets/images/addons/illustrations/backup-restore-databases.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/stash/features/backup-icon.png", + "src": "/assets/images/products/stash/features/backup-icon.png", "alt": "http" }, "summary": "", @@ -99,11 +99,11 @@ { "title": "Multiple Storage Support", "image": { - "src": "https://cdn.appscode.com/images/addons/illustrations/multiple-storage-support.png", + "src": "/assets/images/addons/illustrations/multiple-storage-support.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/stash/features/storage-icon.png", + "src": "/assets/images/products/stash/features/storage-icon.png", "alt": "http" }, "summary": "", @@ -112,11 +112,11 @@ { "title": "Deduplication", "image": { - "src": "https://cdn.appscode.com/images/addons/illustrations/deduplication.png", + "src": "/assets/images/addons/illustrations/deduplication.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/stash/features/compare-icon.png", + "src": "/assets/images/products/stash/features/compare-icon.png", "alt": "http" }, "summary": "", @@ -125,11 +125,11 @@ { "title": "Data Encryption", "image": { - "src": "https://cdn.appscode.com/images/addons/illustrations/data-encryption.png", + "src": "/assets/images/addons/illustrations/data-encryption.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/stash/features/encryption-icon.png", + "src": "/assets/images/products/stash/features/encryption-icon.png", "alt": "http" }, "summary": "", @@ -138,11 +138,11 @@ { "title": "Volume Snapshot", "image": { - "src": "https://cdn.appscode.com/images/addons/illustrations/volume-snapshot.png", + "src": "/assets/images/addons/illustrations/volume-snapshot.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/stash/features/volume-snapshot.png", + "src": "/assets/images/products/stash/features/volume-snapshot.png", "alt": "http" }, "summary": "", @@ -151,11 +151,11 @@ { "title": "Policy Based Backup", "image": { - "src": "https://cdn.appscode.com/images/addons/illustrations/policy-based-backup.png", + "src": "/assets/images/addons/illustrations/policy-based-backup.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/stash/features/policy-based-icon.png", + "src": "/assets/images/products/stash/features/policy-based-icon.png", "alt": "http" }, "summary": "", @@ -164,11 +164,11 @@ { "title": "Monitoring", "image": { - "src": "https://cdn.appscode.com/images/addons/illustrations/monitoring.png", + "src": "/assets/images/addons/illustrations/monitoring.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/stash/features/prometheus.svg", + "src": "/assets/images/products/stash/features/prometheus.svg", "alt": "http" }, "summary": "", @@ -181,6 +181,87 @@ "hostDocs": false, "show": true }, + { + "version": "v2024.9.30", + "hostDocs": true, + "show": true, + "info": { + "cli": "v0.36.0", + "community": "v0.36.0", + "elasticsearch": [ + "5.6.4-v32", + "6.2.4-v32", + "6.3.0-v32", + "6.4.0-v32", + "6.5.3-v32", + "6.8.0-v32", + "7.14.0-v18", + "7.2.0-v32", + "7.3.2-v32", + "8.2.0-v15" + ], + "enterprise": "v0.36.0", + "etcd": [ + "3.5.0-v19" + ], + "installer": "v2024.9.30", + "kubedump": [ + "0.1.0-v15" + ], + "mariadb": [ + "10.5.8-v26" + ], + "mongodb": [ + "3.4.17-v33", + "3.4.22-v33", + "3.6.13-v33", + "3.6.8-v33", + "4.0.11-v33", + "4.0.3-v33", + "4.0.5-v33", + "4.1.13-v33", + "4.1.4-v33", + "4.1.7-v33", + "4.2.3-v33", + "4.4.6-v24", + "5.0.15-v6", + "5.0.3-v21", + "6.0.5-v9" + ], + "mysql": [ + "5.7.25-v32", + "8.0.14-v32", + "8.0.21-v26", + "8.0.3-v32" + ], + "nats": [ + "2.6.1-v20", + "2.8.2-v15" + ], + "percona-xtradb": [ + "5.7-v27" + ], + "postgres": [ + "10.14-v31", + "11.9-v31", + "12.4-v31", + "13.1-v28", + "14.0-v20", + "15.1-v12", + "16.1-v1", + "9.6.19-v31" + ], + "redis": [ + "5.0.13-v20", + "6.2.5-v20", + "7.0.5-v13" + ], + "ui-server": "v0.17.0", + "vault": [ + "1.10.3-v12" + ] + } + }, { "version": "v2024.8.27", "hostDocs": true, @@ -3010,7 +3091,7 @@ "hostDocs": false } ], - "latestVersion": "v2024.8.27", + "latestVersion": "v2024.9.30", "socialLinks": { "facebook": "https://facebook.com/appscode", "github": "https://github.com/stashed", diff --git a/data/products/swift.json b/data/products/swift.json index 2994ab0..46c2742 100644 --- a/data/products/swift.json +++ b/data/products/swift.json @@ -12,22 +12,22 @@ "themeColor": "" }, "heroImage": { - "src": "https://cdn.appscode.com/images/products/swift/swift-hero.png", + "src": "/assets/images/products/swift/swift-hero.png", "alt": "Swift" }, "logo": { - "src": "https://cdn.appscode.com/images/products/swift/swift.png", + "src": "/assets/images/products/swift/swift.png", "alt": "Swift" }, "logoWhite": { - "src": "https://cdn.appscode.com/images/products/swift/swift-white.png", + "src": "/assets/images/products/swift/swift-white.png", "alt": "Swift" }, "icon": { - "src": "https://cdn.appscode.com/images/products/swift/swift-icon.png", + "src": "/assets/images/products/swift/swift-icon.png", "alt": "Swift", "sizes": { - "192x192": "https://cdn.appscode.com/images/products/swift/icons/android-icon-192x192.png" + "192x192": "/assets/images/products/swift/icons/android-icon-192x192.png" } }, "repoURL": "https://github.com/kubepack/swift", @@ -49,11 +49,11 @@ { "title": "API Support", "image": { - "src": "https://cdn.appscode.com/images/products/swift/features/feature-1.png", + "src": "/assets/images/products/swift/features/feature-1.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/swift/features/api.svg", + "src": "/assets/images/products/swift/features/api.svg", "alt": "http" }, "summary": "", @@ -62,11 +62,11 @@ { "title": "gRPC Gateway", "image": { - "src": "https://cdn.appscode.com/images/products/swift/features/feature-2.png", + "src": "/assets/images/products/swift/features/feature-2.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/swift/features/grpc.svg", + "src": "/assets/images/products/swift/features/grpc.svg", "alt": "http" }, "summary": "", @@ -75,11 +75,11 @@ { "title": "JS Client", "image": { - "src": "https://cdn.appscode.com/images/products/swift/features/feature-3.png", + "src": "/assets/images/products/swift/features/feature-3.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/swift/features/js.svg", + "src": "/assets/images/products/swift/features/js.svg", "alt": "http" }, "summary": "", diff --git a/data/products/voyager.json b/data/products/voyager.json index d291595..942ab0d 100644 --- a/data/products/voyager.json +++ b/data/products/voyager.json @@ -12,22 +12,22 @@ "themeColor": "#4d4dcb" }, "heroImage": { - "src": "https://cdn.appscode.com/images/products/voyager/voyager-hero.png", + "src": "/assets/images/products/voyager/voyager-hero.png", "alt": "Voyager" }, "logo": { - "src": "https://cdn.appscode.com/images/products/voyager/voyager.png", + "src": "/assets/images/products/voyager/voyager.png", "alt": "Voyager" }, "logoWhite": { - "src": "https://cdn.appscode.com/images/products/voyager/voyager-white.png", + "src": "/assets/images/products/voyager/voyager-white.png", "alt": "Voyager" }, "icon": { - "src": "https://cdn.appscode.com/images/products/voyager/voyager-icon.svg", + "src": "/assets/images/products/voyager/voyager-icon.svg", "alt": "Voyager", "sizes": { - "192x192": "https://cdn.appscode.com/images/products/voyager/icons/android-icon-192x192.png" + "192x192": "/assets/images/products/voyager/icons/android-icon-192x192.png" } }, "repoURL": "https://github.com/voyagermesh/voyager", @@ -49,11 +49,11 @@ { "title": "HTTP & TCP", "image": { - "src": "https://cdn.appscode.com/images/products/voyager/features/feature-1.png", + "src": "/assets/images/products/voyager/features/feature-1.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/voyager/features/http.svg", + "src": "/assets/images/products/voyager/features/http.svg", "alt": "http" }, "summary": "", @@ -62,11 +62,11 @@ { "title": "SSL", "image": { - "src": "https://cdn.appscode.com/images/products/voyager/features/feature-2.png", + "src": "/assets/images/products/voyager/features/feature-2.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/voyager/features/ssl.svg", + "src": "/assets/images/products/voyager/features/ssl.svg", "alt": "http" }, "summary": "", @@ -75,11 +75,11 @@ { "title": "Platform support", "image": { - "src": "https://cdn.appscode.com/images/products/voyager/features/feature-3.png", + "src": "/assets/images/products/voyager/features/feature-3.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/voyager/features/platform.svg", + "src": "/assets/images/products/voyager/features/platform.svg", "alt": "http" }, "summary": "", @@ -88,11 +88,11 @@ { "title": "HAProxy", "image": { - "src": "https://cdn.appscode.com/images/products/voyager/features/feature-4.png", + "src": "/assets/images/products/voyager/features/feature-4.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/voyager/features/haproxy.svg", + "src": "/assets/images/products/voyager/features/haproxy.svg", "alt": "http" }, "summary": "", @@ -101,11 +101,11 @@ { "title": "Prometheus", "image": { - "src": "https://cdn.appscode.com/images/products/voyager/features/feature-5.png", + "src": "/assets/images/products/voyager/features/feature-5.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/voyager/features/prometheus.svg", + "src": "/assets/images/products/voyager/features/prometheus.svg", "alt": "http" }, "summary": "", @@ -114,11 +114,11 @@ { "title": "Let's Encrypt", "image": { - "src": "https://cdn.appscode.com/images/products/voyager/features/feature-6.png", + "src": "/assets/images/products/voyager/features/feature-6.png", "alt": "http" }, "icon": { - "src": "https://cdn.appscode.com/images/products/voyager/features/encrypt.svg", + "src": "/assets/images/products/voyager/features/encrypt.svg", "alt": "http" }, "summary": "", diff --git a/data/testimonials.json b/data/testimonials.json index 677d605..ce1f58e 100644 --- a/data/testimonials.json +++ b/data/testimonials.json @@ -3,7 +3,7 @@ "name": "Luca Ravazzolo", "job": "Product Manager", "email": "", - "profile": "https://cdn.appscode.com/images/customers/persons/luca_ravazzolo.png", + "profile": "/assets/images/customers/persons/luca_ravazzolo.png", "companyKey": "intersystems", "productKey": "consulting", "testimonial": "InterSystems was delighted to engage with AppsCode in the delicate, yet fundamental task of supporting durable, non-ephemeral workloads with Kubernetes. We needed the best-prepared, most-proficient database operator consulting in the industry. Given AppsCode's pedigree of database building operators, the decision was easy. No time was wasted and all objectives reached in an amazingly short period of time. I would recommend AppsCode consulting for any Kubernetes related work." @@ -12,7 +12,7 @@ "name": "Mario Kozjak", "job": "Solutions Architect", "email": "", - "profile": "https://cdn.appscode.com/images/customers/persons/mario_kozjak.png", + "profile": "/assets/images/customers/persons/mario_kozjak.png", "companyKey": "elpheria", "productKey": "voyager", "testimonial": "Voyager made it simple and efficient for us to protect and initiate our bare metal Kubernetes workload. Its underlying technology and extensive L4 support along with seamless SSL integration is what made us choose Voyager over others. Voyager team is also very responsive when it comes to support. Great product!" @@ -21,7 +21,7 @@ "name": "Manuel Ramírez López", "job": "DevOps Engineer", "email": "", - "profile": "https://cdn.appscode.com/images/customers/persons/manuel_ramírez_lópez.png", + "profile": "/assets/images/customers/persons/manuel_ramírez_lópez.png", "companyKey": "pricehubble", "productKey": "voyager", "testimonial": "Voyager is the easiest way to use the fast and reliable HAProxy as our ingress controller. At PriceHubble, it is the corner-stone of our blue/green deployments." @@ -30,7 +30,7 @@ "name": "Richer Larivière", "job": "DevOPS Specialist", "email": "", - "profile": "https://cdn.appscode.com/images/customers/persons/richer_larivière.png", + "profile": "/assets/images/customers/persons/richer_larivière.png", "companyKey": "devolutions", "productKey": "voyager", "testimonial": "I work with a few Kubernetes clusters and we use Voyager as our preferred ingress controller. We really like the ease of configuration. Documentation is pretty good. Also the use of HaProxy is important for us because it works really well with both L4 and L7 load balancing. One of our TCP services, Wayk Now, is able to withstand thousands of persistent connections very smoothly at the same time." @@ -39,7 +39,7 @@ "name": "Daniel Gormly", "job": "Senior Developer", "email": "", - "profile": "https://cdn.appscode.com/images/customers/persons/daniel_gormly.png", + "profile": "/assets/images/customers/persons/daniel_gormly.png", "companyKey": "birdi", "productKey": "voyager", "testimonial": "We really like using Voyager. Its straightforward and well-documented config and SSL (especially Let's Encrypt) has made our migration of services to Kubernetes a breeze. Each major version has been a very welcome update!" @@ -48,7 +48,7 @@ "name": "Dario Freddi", "job": "Founder & CEO", "email": "", - "profile": "https://cdn.appscode.com/images/customers/persons/dario_freddi.png", + "profile": "/assets/images/customers/persons/dario_freddi.png", "companyKey": "astarte", "productKey": "voyager", "testimonial": "We're using Voyager as part of most Astarte deployments and it's orchestrated also by our brand new Operator. We are glad to showcase that." diff --git a/hugo_stats.json b/hugo_stats.json index aa79235..f9693d3 100644 --- a/hugo_stats.json +++ b/hugo_stats.json @@ -220,7 +220,6 @@ "inline-button", "input", "is-1-mobile", - "is-10", "is-12", "is-4", "is-5", @@ -256,12 +255,10 @@ "is-inline-flex", "is-justify-content-center", "is-justify-content-flex-end", - "is-justify-content-flex-start", "is-justify-content-space-between", "is-mobile", "is-multiline", "is-normal", - "is-offset-1", "is-offset-2-desktop", "is-one-quarter", "is-one-quarter-fullhd", @@ -346,6 +343,7 @@ "p-10", "pb-0", "pb-100", + "pb-32", "percona-xtradb", "pl-15", "pl-20", @@ -356,7 +354,6 @@ "pr-140", "pr-20", "pr-30", - "pr-45", "pr-6", "pricing-description", "pricing-model", @@ -367,6 +364,7 @@ "product-menu", "product-sidebar-menu", "product-version", + "pt-32", "redis", "resources-list", "responsive-menu", @@ -388,7 +386,6 @@ "single-brand", "single-card", "single-cta", - "single-feature-image", "single-features", "single-features-area", "single-features-item", diff --git a/static/assets/images/authors/abu-sayed.jpg b/static/assets/images/authors/abu-sayed.jpg new file mode 100644 index 0000000..96a1b07 Binary files /dev/null and b/static/assets/images/authors/abu-sayed.jpg differ diff --git a/static/assets/images/authors/ashraful.jpg b/static/assets/images/authors/ashraful.jpg new file mode 100644 index 0000000..d2f82a8 Binary files /dev/null and b/static/assets/images/authors/ashraful.jpg differ diff --git a/static/assets/images/authors/profile-photos-28x28/ashraful.jpg b/static/assets/images/authors/profile-photos-28x28/ashraful.jpg new file mode 100644 index 0000000..76e36bf Binary files /dev/null and b/static/assets/images/authors/profile-photos-28x28/ashraful.jpg differ diff --git a/static/assets/images/customers/2024/bank-al-etihad.png b/static/assets/images/customers/2024/bank-al-etihad.png new file mode 100644 index 0000000..48df28c Binary files /dev/null and b/static/assets/images/customers/2024/bank-al-etihad.png differ diff --git a/static/assets/images/products/configsyncer/features/configuration-syncer.jpg b/static/assets/images/products/configsyncer/features/configuration-syncer.jpg new file mode 100644 index 0000000..5405231 Binary files /dev/null and b/static/assets/images/products/configsyncer/features/configuration-syncer.jpg differ diff --git a/static/assets/images/products/guard/features/cli.jpg b/static/assets/images/products/guard/features/cli.jpg new file mode 100644 index 0000000..edc2040 Binary files /dev/null and b/static/assets/images/products/guard/features/cli.jpg differ diff --git a/static/assets/images/products/guard/features/identify-providers.jpg b/static/assets/images/products/guard/features/identify-providers.jpg new file mode 100644 index 0000000..73a4c28 Binary files /dev/null and b/static/assets/images/products/guard/features/identify-providers.jpg differ diff --git a/static/assets/images/products/guard/features/rbac.jpg b/static/assets/images/products/guard/features/rbac.jpg new file mode 100644 index 0000000..f9c8795 Binary files /dev/null and b/static/assets/images/products/guard/features/rbac.jpg differ diff --git a/static/assets/images/products/kubedb/features/availability-lg.jpg b/static/assets/images/products/kubedb/features/availability-lg.jpg new file mode 100644 index 0000000..81b6c87 Binary files /dev/null and b/static/assets/images/products/kubedb/features/availability-lg.jpg differ diff --git a/static/assets/images/products/kubedb/features/easy-lg.jpg b/static/assets/images/products/kubedb/features/easy-lg.jpg new file mode 100644 index 0000000..d4fdf46 Binary files /dev/null and b/static/assets/images/products/kubedb/features/easy-lg.jpg differ diff --git a/static/assets/images/products/kubedb/features/low-price-lg.jpg b/static/assets/images/products/kubedb/features/low-price-lg.jpg new file mode 100644 index 0000000..82330d4 Binary files /dev/null and b/static/assets/images/products/kubedb/features/low-price-lg.jpg differ diff --git a/static/assets/images/products/kubedb/features/monitoring-lg.jpg b/static/assets/images/products/kubedb/features/monitoring-lg.jpg new file mode 100644 index 0000000..2ca1978 Binary files /dev/null and b/static/assets/images/products/kubedb/features/monitoring-lg.jpg differ diff --git a/static/assets/images/products/kubedb/features/multi-cloud-lg.jpg b/static/assets/images/products/kubedb/features/multi-cloud-lg.jpg new file mode 100644 index 0000000..5a06bc0 Binary files /dev/null and b/static/assets/images/products/kubedb/features/multi-cloud-lg.jpg differ diff --git a/static/assets/images/products/kubedb/features/performance-lg.jpg b/static/assets/images/products/kubedb/features/performance-lg.jpg new file mode 100644 index 0000000..eb53ce9 Binary files /dev/null and b/static/assets/images/products/kubedb/features/performance-lg.jpg differ diff --git a/static/assets/images/products/kubedb/features/security-lg.jpg b/static/assets/images/products/kubedb/features/security-lg.jpg new file mode 100644 index 0000000..141b0e2 Binary files /dev/null and b/static/assets/images/products/kubedb/features/security-lg.jpg differ diff --git a/static/files/products/appscode/aws-marketplace/ace_pay_arch.png b/static/files/products/appscode/aws-marketplace/ace_pay_arch.png new file mode 100644 index 0000000..99259d8 Binary files /dev/null and b/static/files/products/appscode/aws-marketplace/ace_pay_arch.png differ diff --git a/static/files/products/appscode/aws-marketplace/ace_payg_aws_eula.pdf b/static/files/products/appscode/aws-marketplace/ace_payg_aws_eula.pdf new file mode 100644 index 0000000..c98443d Binary files /dev/null and b/static/files/products/appscode/aws-marketplace/ace_payg_aws_eula.pdf differ diff --git a/static/files/products/appscode/aws-marketplace/ace_payg_cf.yaml b/static/files/products/appscode/aws-marketplace/ace_payg_cf.yaml new file mode 100644 index 0000000..3d0e751 --- /dev/null +++ b/static/files/products/appscode/aws-marketplace/ace_payg_cf.yaml @@ -0,0 +1,355 @@ +AWSTemplateFormatVersion: '2010-09-09' +Description: CloudFormation template for creating an EC2 instance in a new VPC + +Parameters: + Architecture: + Description: "CIDR range of remote ip for ssh" + Type: String + Default: "amd64" + AllowedValues: + - "amd64" + - "arm64" + IpWhiteList: + Description: "CIDR range of remote ip for ssh" + Type: String + InstallerURL: + Description: "Download URL of the selfhost Installer" + Type: String + KeyPair: + Description: Name of an existing EC2 KeyPair to enable SSH access to the instance. + Type: 'AWS::EC2::KeyPair::KeyName' + +Mappings: + AMIImageMap: + amd64: + ImageID: '{{resolve:ssm:/aws/service/canonical/ubuntu/server/noble/stable/current/amd64/hvm/ebs-gp3/ami-id}}' + InstanceType: "m5.xlarge" + arm64: + ImageID: '{{resolve:ssm:/aws/service/canonical/ubuntu/server/noble/stable/current/arm64/hvm/ebs-gp3/ami-id}}' + InstanceType: "m6g.xlarge" + +Resources: + VPC: + Type: AWS::EC2::VPC + Properties: + CidrBlock: 10.5.0.0/16 + EnableDnsSupport: true + EnableDnsHostnames: true + Tags: + - Key: Name + Value: !Ref AWS::StackName + + Subnet: + Type: AWS::EC2::Subnet + Properties: + VpcId: !Ref VPC + CidrBlock: 10.5.0.0/24 + Tags: + - Key: Name + Value: !Ref AWS::StackName + + ElasticIP: + Type: AWS::EC2::EIP + Properties: + Tags: + - Key: Name + Value: !Ref AWS::StackName + + InternetGateway: + Type: AWS::EC2::InternetGateway + Properties: + Tags: + - Key: Name + Value: !Ref AWS::StackName + + AttachGateway: + Type: AWS::EC2::VPCGatewayAttachment + Properties: + VpcId: !Ref VPC + InternetGatewayId: !Ref InternetGateway + + RouteTable: + Type: AWS::EC2::RouteTable + Properties: + VpcId: !Ref VPC + Tags: + - Key: Name + Value: !Ref AWS::StackName + + RouteToInternet: + Type: AWS::EC2::Route + DependsOn: AttachGateway + Properties: + RouteTableId: !Ref RouteTable + DestinationCidrBlock: 0.0.0.0/0 + GatewayId: !Ref InternetGateway + + SecurityGroupIngress4222: + Type: AWS::EC2::SecurityGroupIngress + Properties: + IpProtocol: tcp + FromPort: 4222 + ToPort: 4222 + CidrIp: 0.0.0.0/0 + GroupId: !GetAtt VPC.DefaultSecurityGroup + + SecurityGroupIngress80: + Type: AWS::EC2::SecurityGroupIngress + Properties: + IpProtocol: tcp + FromPort: 80 + ToPort: 80 + CidrIp: 0.0.0.0/0 + GroupId: !GetAtt VPC.DefaultSecurityGroup + + SecurityGroupIngress443: + Type: AWS::EC2::SecurityGroupIngress + Properties: + IpProtocol: tcp + FromPort: 443 + ToPort: 443 + CidrIp: 0.0.0.0/0 + GroupId: !GetAtt VPC.DefaultSecurityGroup + + SecurityGroupIngress6443: + Type: AWS::EC2::SecurityGroupIngress + Properties: + IpProtocol: tcp + FromPort: 6443 + ToPort: 6443 + CidrIp: 0.0.0.0/0 + GroupId: !GetAtt VPC.DefaultSecurityGroup + + SecurityGroupIngress22: + Type: AWS::EC2::SecurityGroupIngress + Properties: + IpProtocol: tcp + FromPort: 22 + ToPort: 22 + CidrIp: !Ref IpWhiteList + GroupId: !GetAtt VPC.DefaultSecurityGroup + + SubnetRouteTableAssociation: + Type: AWS::EC2::SubnetRouteTableAssociation + Properties: + RouteTableId: !Ref RouteTable + SubnetId: !Ref Subnet + + Instance: + Type: AWS::EC2::Instance + Properties: + ImageId: !FindInMap [ AMIImageMap, !Ref Architecture, ImageID] + InstanceType: !FindInMap [ AMIImageMap, !Ref Architecture, InstanceType] + KeyName: !Ref KeyPair + Tags: + - Key: "Name" + Value: + Ref: AWS::StackName + NetworkInterfaces: + - AssociatePublicIpAddress: "true" + DeviceIndex: "0" + SubnetId: + Ref: "Subnet" + BlockDeviceMappings: + - DeviceName: /dev/sda1 #/dev/sta1 is the device name for root volume + Ebs: + VolumeSize: 100 # Specify the size of the root volume in GB + VolumeType: gp3 + UserData: + Fn::Base64: + !Join + - "\n" + - - | + #!/bin/bash + sudo su + HOME="/root" + cd $HOME + apt-get -y update + apt upgrade -y + set -xeo pipefail + exec >/root/userdata.log 2>&1 + - !Sub 'INSTALLER_URL=${InstallerURL}' + - !Sub 'PUBLIC_IP=${ElasticIP.PublicIp}' + - !Sub 'REGION=${AWS::Region}' + - | + #constants (don't touch) + BUCKET_NAME="ace" + INSTALLER_ID=$(echo $INSTALLER_URL | awk -F '[/]' '{ print $8 }') + timestamp() { + date +"%Y/%m/%d %T" + } + log() { + local type="$1" + local msg="$2" + local script_name=${0##*/} + echo "$(timestamp) [$script_name] [$type] $msg" + } + retry() { + local retries="$1" + shift + local count=0 + local wait=5 + until "$@"; do + exit="$?" + if [ $count -lt $retries ]; then + log "INFO" "Attempt $count/$retries. Command exited with exit_code: $exit. Retrying after $wait seconds..." + sleep $wait + else + log "INFO" "Command failed in all $retries attempts with exit_code: $exit. Stopping trying any further...." + return $exit + fi + count=$(($count + 1)) + done + return 0 + } + create_k3s() { + echo 'fs.inotify.max_user_instances=100000' | sudo tee -a /etc/sysctl.conf + echo 'fs.inotify.max_user_watches=100000' | sudo tee -a /etc/sysctl.conf + sudo sysctl -p + + # Create k3s cluster + SERVER_IP=${PUBLIC_IP} + cmd="curl -sfL https://get.k3s.io" + retry 5 $cmd | INSTALL_K3S_EXEC="--disable=traefik --disable=metrics-server" sh -s - --tls-san "$SERVER_IP" + + echo 'alias k=kubectl' >> ${HOME}/.bashrc + echo 'export KUBECONFIG=/etc/rancher/k3s/k3s.yaml' >> ${HOME}/.bashrc + source "${HOME}/.bashrc" + + export KUBECONFIG=/etc/rancher/k3s/k3s.yaml + + # wait for 2 pods to become running + cmd="kubectl wait --for=condition=ready pods --all -A --timeout=5m" + retry 5 $cmd + + # Install helm + curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash + } + download_values(){ + mkdir old + cd old + curl -L "${INSTALLER_URL}" -o "archive.tar.gz" + tar -xvzf archive.tar.gz + + #soruce azure credential file from archive.tar.gz + source env.sh + + cd .. + } + aws_cli() { + apt install unzip >/dev/null + curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" >/dev/null + unzip awscliv2.zip >/dev/null + sudo ./aws/install >/dev/null + #install jq + apt-get install jq -y + BUCKET_NAME=${BUCKET_NAME}$(head /dev/urandom | tr -dc 'a-z' | head -c 6) + echo "s3 bucket name: "${BUCKET_NAME} + aws s3api create-bucket --bucket ${BUCKET_NAME} --region ${REGION} --object-ownership BucketOwnerEnforced + ACCOUNT_ID=$(aws sts get-caller-identity | jq -r '.Account') + #call the webhook here + resp=$(curl -X POST https://appscode.com/marketplace/api/v1/marketplaces/aws/notification/resource?secret=vstktmgwvkxyrsrfmt5tr0i66qpxkeoeaejjr3gyxkeywkm/00kyfahzvxjkfyb/qn5tgxgt9s/xb6vsamhh4w== \ + -H "Content-Type: application/json" \ + -d '{ + "eventType": "BIND", + "accountId": "'${ACCOUNT_ID}'", + "bindingInfo": { + "installerID": "'${INSTALLER_ID}'", + "options": { + "infra": { + "dns": { + "provider": "none", + "targetIPs": ["'${PUBLIC_IP}'"] + }, + "cloudServices": { + "objstore": { + "auth": { + "s3": { + "AWS_ACCESS_KEY_ID": "'${AWS_ACCESS_KEY_ID}'", + "AWS_SECRET_ACCESS_KEY": "'${AWS_SECRET_ACCESS_KEY}'" + } + }, + "bucket": "s3://'${BUCKET_NAME}'?s3ForcePathStyle=true", + "endpoint": "s3.amazonaws.com", + "prefix": "ace", + "region": "'${REGION}'" + }, + "provider": "s3" + }, + "kubestash": { + "backend": { + "provider": "s3", + "s3": { + "bucket": "s3://'${BUCKET_NAME}'", + "endpoint": "s3.amazonaws.com", + "prefix": "ace", + "region": "'${REGION}'" + } + }, + "retentionPolicy": "keep-1mo", + "schedule": "0 */2 * * *", + "storageSecret": { + "create": true + } + } + }, + "initialSetup": { + "cluster": { + "region": "'${REGION}'" + }, + "subscription": { + "aws": { + "customer-identifier": "demo-customer-identifier" + } + } + } + } + } + }') + link=$(echo ${resp} | jq -r '.link') + if [ ${link} == "null" ]; then exit ; fi + + mkdir new + cd new + curl -L "${link}" -o "archive.tar.gz" + tar -xvzf archive.tar.gz + cd .. + } + install_fluxcd() { + helm upgrade -i flux2 \ + oci://ghcr.io/appscode-charts/flux2 \ + --version ${FLUXCD_CHART_VERSION} \ + --namespace flux-system --create-namespace \ + --set helmController.create=true \ + --set sourceController.create=true \ + --set imageAutomationController.create=false \ + --set imageReflectionController.create=false \ + --set kustomizeController.create=false \ + --set notificationController.create=false \ + --set-string helmController.labels."ace\.appscode\.com/managed=true" \ + --set-string sourceController.labels."ace\.appscode\.com/managed=true" \ + --wait --debug --burst-limit=10000 + } + deploy_ace(){ + helm upgrade -i ace-installer \ + oci://ghcr.io/appscode-charts/ace-installer \ + --version ${ACE_INSTALLER_CHART_VERSION} \ + --namespace kubeops --create-namespace \ + --values=./new/values.yaml \ + --wait --debug --burst-limit=10000 + #--set helm.releases.ace.values.global.infra.dns.targetIPs={${PUBLIC_IP}} + } + init(){ + create_k3s + download_values + aws_cli + install_fluxcd + deploy_ace + } + init + + IPAssoc: + Type: AWS::EC2::EIPAssociation + Properties: + InstanceId: !Ref Instance + EIP: !GetAtt ElasticIP.PublicIp diff --git a/static/files/products/appscode/azure-marketplace/ace_payg_azure_eula.pdf b/static/files/products/appscode/azure-marketplace/ace_payg_azure_eula.pdf new file mode 100644 index 0000000..3241717 Binary files /dev/null and b/static/files/products/appscode/azure-marketplace/ace_payg_azure_eula.pdf differ diff --git a/static/files/products/appscode/azure-marketplace/v2024.10.17/init-script.sh b/static/files/products/appscode/azure-marketplace/v2024.10.17/init-script.sh new file mode 100644 index 0000000..79ba658 --- /dev/null +++ b/static/files/products/appscode/azure-marketplace/v2024.10.17/init-script.sh @@ -0,0 +1,222 @@ +#!/bin/bash + +ACE_PLATFORM=$1 +API_SECRET=$2 +APPLICATION_NAME=$3 +INSTALLER_URL=$4 +LOCATION=$5 +PUBLIC_IP=$6 +RESOURCE_GROUP=$7 + +sudo su +HOME="/root" +cd $HOME +apt-get -y update +apt upgrade -y +set -xeo pipefail +exec >/root/userdata.log 2>&1 + +#constants (don't touch) +SKU="Standard_LRS" +STORAGE_ACCOUNT_NAME="ace" +CONTAINER_NAME="ace" +ACCESS_KEY="" +INSTALLER_ID=$(echo $INSTALLER_URL | awk -F '[/]' '{ print $8 }') + +timestamp() { + date +"%Y/%m/%d %T" +} +log() { + local type="$1" + local msg="$2" + local script_name=${0##*/} + echo "$(timestamp) [$script_name] [$type] $msg" +} +retry() { + local retries="$1" + shift + local count=0 + local wait=5 + until "$@"; do + exit="$?" + if [ $count -lt $retries ]; then + log "INFO" "Attempt $count/$retries. Command exited with exit_code: $exit. Retrying after $wait seconds..." + sleep $wait + else + log "INFO" "Command failed in all $retries attempts with exit_code: $exit. Stopping trying any further...." + return $exit + fi + count=$(($count + 1)) + done + return 0 +} + +create_k3s() { + echo 'fs.inotify.max_user_instances=100000' | sudo tee -a /etc/sysctl.conf + echo 'fs.inotify.max_user_watches=100000' | sudo tee -a /etc/sysctl.conf + sudo sysctl -p + + # Create k3s cluster + SERVER_IP=${PUBLIC_IP} + cmd="curl -sfL https://get.k3s.io" + retry 5 $cmd | INSTALL_K3S_EXEC="--disable=traefik --disable=metrics-server" sh -s - --tls-san "$SERVER_IP" + + echo 'alias k=kubectl' >> ${HOME}/.bashrc + echo 'export KUBECONFIG=/etc/rancher/k3s/k3s.yaml' >> ${HOME}/.bashrc + source "${HOME}/.bashrc" + + export KUBECONFIG=/etc/rancher/k3s/k3s.yaml + + # wait for 2 pods to become running + cmd="kubectl wait --for=condition=ready pods --all -A --timeout=5m" + retry 5 $cmd + + # Install helm + curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash +} + +download_values(){ + mkdir old + cd old + curl -L "${INSTALLER_URL}" -o "archive.tar.gz" + tar -xvzf archive.tar.gz + + #soruce azure credential file from archive.tar.gz + source env.sh + + cd .. +} + +###test az cli +az_cli() { + curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash + + #azure cli login + az login \ + --service-principal \ + -t ${AZURE_TENANT_ID} \ + -u ${AZURE_CLIENT_ID} \ + -p ${AZURE_CLIENT_SECRET} + + #set subscription id + az account set -s ${AZURE_SUBSCRIPTION_ID} + + #install jq + apt-get install jq -y + + STORAGE_ACCOUNT_NAME=${STORAGE_ACCOUNT_NAME}$(head /dev/urandom | tr -dc 'a-z' | head -c 6) + echo "storage account name: "${STORAGE_ACCOUNT_NAME} + + az storage account create --name ${STORAGE_ACCOUNT_NAME} --resource-group ${RESOURCE_GROUP} --location ${LOCATION} --sku ${SKU} + + #in the --assignee-object-id flag you have to give the objectId of the service account + #not the appId. Currently the service principal that we are using has the contributor permission, + #that's why it can't assign the role to himself +# az ad signed-in-user show --query id -o tsv | az role assignment create \ +# --role "Storage Blob Data Contributor" \ +# --assignee-object-id "0000-000-000000-0000000" \ +# --scope "/subscriptions/0000-000-000000-0000000/resourceGroups//providers/Microsoft.Storage/storageAccounts/" + + + az storage container create \ + --account-name ${STORAGE_ACCOUNT_NAME} \ + --name ${CONTAINER_NAME} + + ACCESS_KEY=$(az storage account keys list --account-name ${STORAGE_ACCOUNT_NAME} | jq -r '.[0].value') + + #call the webhook here + resp=$(curl -X POST https://appscode."$ACE_PLATFORM"/marketplace/api/v1/marketplaces/azure/notification/resource?secret=${API_SECRET} \ + -H "Content-Type: application/json" \ + -d '{ + "eventType": "BIND", + "applicationId": "/subscriptions/'${AZURE_SUBSCRIPTION_ID}'/resourceGroups/'${RESOURCE_GROUP}'/providers/Microsoft.Solutions/applications/'${APPLICATION_NAME}'", + "bindingInfo": { + "installerID": "'${INSTALLER_ID}'", + "options": { + "infra": { + "dns": { + "provider": "none", + "targetIPs": ["'${PUBLIC_IP}'"] + }, + "cloudServices": { + "objstore": { + "auth": { + "azure": { + "AZURE_ACCOUNT_KEY": "'${ACCESS_KEY}'", + "AZURE_ACCOUNT_NAME": "'${STORAGE_ACCOUNT_NAME}'" + } + }, + "bucket": "azblob://'${CONTAINER_NAME}'" + }, + "provider": "azure" + }, + "kubestash": { + "backend": { + "azure": { + "container": "'${CONTAINER_NAME}'", + "prefix": "ace" + } + }, + "retentionPolicy": "keep-1mo", + "schedule": "0 */2 * * *", + "storageSecret": { + "create": true + } + } + }, + "initialSetup": { + "cluster": { + "region": "'${LOCATION}'" + }, + "subscription": { + "azure": { + "applicationId": "/subscriptions/'${AZURE_SUBSCRIPTION_ID}'/resourceGroups/'${RESOURCE_GROUP}'/providers/Microsoft.Solutions/applications/'${APPLICATION_NAME}'" + } + } + } + } + } + }') + link=$(echo ${resp} | jq -r '.link') + if [ ${link} == "null" ]; then exit ; fi + + mkdir new + cd new + curl -L "${link}" -o "archive.tar.gz" + tar -xvzf archive.tar.gz + cd .. +} + +install_fluxcd() { + helm upgrade -i flux2 \ + oci://ghcr.io/appscode-charts/flux2 \ + --version ${FLUXCD_CHART_VERSION} \ + --namespace flux-system --create-namespace \ + --set helmController.create=true \ + --set sourceController.create=true \ + --set imageAutomationController.create=false \ + --set imageReflectionController.create=false \ + --set kustomizeController.create=false \ + --set notificationController.create=false \ + --set-string helmController.labels."ace\.appscode\.com/managed=true" \ + --set-string sourceController.labels."ace\.appscode\.com/managed=true" \ + --wait --debug --burst-limit=10000 +} +deploy_ace(){ + helm upgrade -i ace-installer \ + oci://ghcr.io/appscode-charts/ace-installer \ + --version ${ACE_INSTALLER_CHART_VERSION} \ + --namespace kubeops --create-namespace \ + --values=./new/values.yaml \ + --wait --debug --burst-limit=10000 + #--set helm.releases.ace.values.global.infra.dns.targetIPs={${PUBLIC_IP}} + +} +init(){ + create_k3s + download_values + az_cli + install_fluxcd + deploy_ace +} +init diff --git a/static/files/products/appscode/gcp-marketplace/ace_payg_gcp_eula.pdf b/static/files/products/appscode/gcp-marketplace/ace_payg_gcp_eula.pdf new file mode 100644 index 0000000..6ec0f56 Binary files /dev/null and b/static/files/products/appscode/gcp-marketplace/ace_payg_gcp_eula.pdf differ diff --git a/themes/hugo-product-theme b/themes/hugo-product-theme index f231676..1903af5 160000 --- a/themes/hugo-product-theme +++ b/themes/hugo-product-theme @@ -1 +1 @@ -Subproject commit f231676e698ee686145cd8d4ef7f26c519fa44f1 +Subproject commit 1903af58ca0ed93ec49d6aae4f971e04e8afa531