Fastest way to Get started with Portworx Data Services.

TL;DR This is the process to get an EKS Cluster with Portworx installed with PDS installed and registered to your account in the PDS Control Plane. By following this you can use one command:

eksctl create cluster -f gitops-cluster.yaml

Wait about 22 minutes and you are ready to go with Amazon EKS, PX Enterprise and Portworx Data Services!


With big help form the amazing Chris Kennedy I would like to share how to quickly get a K8s cluster with Portworx Enterprise. To start read Chris’ blog post here:
https://portworx.com/blog/how-to-deploy-portworx-using-gitops-workflows/

Go back and follow it carefully, in this example I assume you fully have the above article working. Now that you are up to speed on using Flux to deploy Portworx.

Save this to a file called your EKS cluster specI called mine gitops-cluster.yaml
Get more on the using eksctl to create your cluster and what is required for Portworx here https://docs.portworx.com/install-portworx/cloud/aws/aws-eks/eksctl/eksctl-operator/


gitops:
  flux:
    gitProvider: github      # required. options are github, gitlab or git
    flags:                   # required. arbitrary map[string]string for all flux args.
    # these args are not controlled by eksctl. see https://fluxcd.io/docs/get-started/ for all available flags
      owner: "yourgithubusername"
      repository: "demo-cloud-ops"
      private: "true"
      branch: "main"
      namespace: "flux-system"
      path: "clusters/demo-cluster"

If you followed Chris’ instructions you will have a git repo with the needed cloned from his example. The file you need to pay attention to for PDS to install on bootstrap of your cluster:

portworx/pds/kustomization.yaml

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: pds-system
resources:
  - pds-helm-release.yaml
  - pds-helm-repo.yaml

portworx/pds/pds-helm-repo.yaml

apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: HelmRepository
metadata:
  name: pds
  namespace: pds-system
spec:
  interval: 1m0s
  url: https://portworx.github.io/pds-charts

portworx/pds/pds-helm-release.yaml

apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
  name: pds
  namespace: pds-system
spec:
  interval: 1m0s
  chart:
    spec:
      chart: pds-target
      sourceRef:
        kind: HelmRepository
        name: pds
        namespace: pds-system
      version: 1.5.0 #set to your current pds version
  values:
        tenantId: "inserter your pds tennant id"
        bearerToken: "insert pds bearer token"
        apiEndpoint: https://your api endpoint for pds

Notice the parts in bold you must get from the add target cluster wizard in the PDS control plane UI.

clusters/pds-flux-eksdemo/pds.yaml

apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
kind: Kustomization
metadata:
  name: portworx-pds
  namespace: flux-system
spec:
  interval: 1m0s
  dependsOn: 
    - name: portworx-storagecluster
  sourceRef:
    kind: GitRepository
    name: flux-system
  path: ./portworx/pds
  prune: true
  wait: true

This file has an important part that makes the PDS install wait until after the storagecluster is finished.

The next few files in the repo are there to add the required namespaces for PDS and for a “pds-demo” namespace with the label pds.portworx.com/available: “true” This namespace label allows PDS to deploy data services to that namespace. All other namespaces are not seen by the PDS Deployment UI.

clusters/pds-flux-eksdemo/px-ns.yaml

apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
kind: Kustomization
metadata:
  name: namespaces
  namespace: flux-system
spec:
  interval: 1m0s
  sourceRef:
    kind: GitRepository
    name: flux-system
  path: ./portworx/namespaces
  prune: true

portworx/namespaces/px-ns.yaml

kind: Namespace
apiVersion: v1
metadata:
  name: pds-system
---
kind: Namespace
apiVersion: v1
metadata:
  name: portworx
---
kind: Namespace
apiVersion: v1
metadata:
  name: pds-demo
  labels:
    pds.portworx.com/available: "true"

portworx/namespaces/kustomization.yaml

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  - px-ns.yaml

Once you have your files edited you can install your EKS cluster from a file. That has the gitops settings set to your Github repo.

eksctl create cluster -r gitops-admin.yaml

You will wait probably 20 – 25 minutes depending on how many nodes you are using. The minimum is 3 for Portworx but if you plan on have lots of Data Services running you will need to choose a bigger EC2 size and more nodes.

Have a great afternoon,

Portworx Data Services GA: An Admins View, So easy you won’t believe it…

Portworx Data Services (PDS) the DBaaS platform built on the Portworx Enterprise platform is One Platform for All Databases. This SaaS platform can work with your platform in the Cloud or in your datacenter. Check out this demo of some of the Admin tasks available.

The good part other than add your DB consumers and your target Clusters to run workloads, the rest is configured for you. The power in the platform is you can change many settings but for the best practices are already put in place for you. Now you can have all databases with just one API and one UI.

You no longer need to learn an Operator or Custom resources for every different data service your Developers, Data Architects and DBA’s ask for. Also your data teams don’t learn K8s, They work with databases without having to every become platform exports. Just one API, One UI.
One Platform. All Databases.

Collection of PDS Links (as of May 18, 2022)

Blog from Umair Mufti on should you use DBaaS or DIY
https://blog.purestorage.com/perspectives/dbaas-or-diy-build-versus-buy-comparison/
How to deploy Postgres via Bhavin Shah with video demo
https://portworx.com/blog/accelerate-data-services-deployment-on-kubernetes-using-portworx-data-services/
Deploying Postgres via PDS by Ron Ekins step by step details
https://ronekins.com/2022/05/18/portworx-data-services-pds-and-postgresql/
Portworx Data Services page on Purestorage.com
https://www.purestorage.com/enable/portworx/data-services.html
PDS is GA Announcement from Pure Storage.
https://www.purestorage.com/company/newsroom/press-releases/pure-boosts-developer-productivity-expanding-portworx-portfolio.html
Migrating existing PostgreSQL into Managed PostgreSQL in PDS
https://portworx.com/blog/migrating-postgresql-to-portworx-data-services/