sassoftware / viya4-deployment

This project contains Ansible code that creates a baseline in an existing Kubernetes environment for use with the SAS Viya Platform, generates the manifest for an order, and then can also deploy that order into the Kubernetes environment specified.
Apache License 2.0
71 stars 64 forks source link

Default behaviour of Postgres internal/external option with IAC #188

Closed pulungw closed 2 years ago

pulungw commented 2 years ago

I've mistakenly left the below variable in terraform.tfvars when running viya4-iac-azure, so external Azure Database for PostgreSQL server was created.

# Postgres config - By having this entry a database server is created. If you do not
#                   need an external database server remove the 'postgres_servers'
#                   block below.
postgres_servers = {
  default = {},
}

But in viya4-deployment ansible-vars-iac.yaml I explicitly set Postgres as internal like below:

## Postgres
V4_CFG_POSTGRES_TYPE: internal

What's the default behaviour for this? it seems like the Viya4 deployment is using the external postgres regardless the above option. I do not see crunchy pods or crunchy PVC in my cluster. I'm thinking of removing the Azure Postgres server manually but if Viya4 is using it then I will need to redeploy a new cluster.

thpang commented 2 years ago

The code does not use the external database unless the V4_CFG_POSTGRES_TYPE is set to external. Depending on your order you may see different items for postgres. Not having more information here, the best you can do is reach out to the Postgres team to determine based on your order what pods/operators/etc. should be in your cluster.

pulungw commented 2 years ago

Thanks for the reply. I'm using Visual Data Science license and I've been installing Viya4 a couple of times to a different clusters with the same license, so I'm pretty sure I had a sas-crunchy-data-xxx pods before but not now.

I can confirm that this Viya4 is using the Azure external Postgres because I'm seeing Viya-related tables and schemas in Azure Postgres. Can you make sure that by setting V4_CFG_POSTGRES_TYPE to internal it will always set the Postgress to internal regardless especially when you already created Azure Postgres via terraform? (And yes, it was my careless mistake to create the Azure Postgres in the first place, just making sure this won't repeat in the future)

Thanks.

thpang commented 2 years ago

The code does what you tell it. So if on the IAC side you created an external database that is going to be there. From what I can tell if you setup your database internally it should use the Data Server operator to use Crunchy in your cluster. The code is pretty specific on not pulling items from the tfstate file if you don't have the value set to 'external'. Again, there's not much you're providing here to help just observation. But we can investigate.

As a side note there is no check between the two repos on your choices. These are made to be modular, so as the user if you don't keep track of your own setup. It will do what you tell it to do. Since it is IAC, you can always recreate your cluster and IAC components. Just saying you'll keep the bad system in place just because is not really a good reason.

thpang commented 2 years ago

@pulungw is this still an issue? I am looking for feedback based on my last comment. We'll be closing this one later today if you don't respond.