Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

request: allow for more configurations #34

Open
vmarchaud opened this issue Mar 23, 2020 · 3 comments
Open

request: allow for more configurations #34

vmarchaud opened this issue Mar 23, 2020 · 3 comments

Comments

@vmarchaud
Copy link

Hi,

I'm deploying statusbay on GKE with the following setup:

  • one cluster used to host ui+api+database
  • one staging cluster that connect to the db
  • one prod cluster that connect to the db

Every cluster is using a different GCP account to i must expose the db to internet so i can monitor the deployments on all cluster (would better to use the api instead of the database in the future).

However i had some issues with the chart as it is today:

  • API + UI services are ClusterIP, GKE only allow ingress to service that are NodePort or LoadBalancer so that would be helpful if configurable
  • By default GKE Ingress use / to check if the service is working, it's working on the UI since it expose the frontend but the API is failing because of that. I believe you should add the readinessProbe and livenessProbe to both.
  • I use cert-manager to get SSL cert for both the API/UI with annonations on the ingress, however i need to define the tls config. Should be perfect if you could add the options on the chart !

I've had other issue because of the database need to be exposed to internet but that's not really whats the chart is about. However you could rely on the official stable mysql chart to ease that part

Thanks for statusbay by the way, cool software !

@kaplanelad
Copy link
Contributor

Hey, @vmarchaud I'm happy that you like our tool and using it :)

To improve our chart, can you please share with us the values.yaml file configuration? I want to understand better what we need to add to improve the deployment flow.

@vmarchaud
Copy link
Author

service:
  api:
    type: NodePort
  ui:
    type: NodePort
    annotations:
      "beta.cloud.google.com/backend-config": '{"default": "komiser-default-config"}'
ingress:
  api:
    host: ${local.statusbay_api_endpoint}
    annotations:
      "external-dns.alpha.kubernetes.io/hostname": "${local.statusbay_api_endpoint}."
      "cert-manager.io/cluster-issuer": "ssl-cert-issuer"
    tls:
    - hosts:
      - ${local.statusbay_api_endpoint}
      secretName: statusbay-api-tls
  ui:
    host: ${local.statusbay_ui_endpoint}
    annotations:
      "external-dns.alpha.kubernetes.io/hostname": "${local.statusbay_ui_endpoint}."
      "cert-manager.io/cluster-issuer": "ssl-cert-issuer"
    tls:
    - hosts:
      - ${local.statusbay_ui_endpoint}
      secretName: statusbay-ui-tls
ui:
  replicas: 2
watcher:
  kubernetes:
    application:
      cluster_name: ${var.environment}
      slack:
        default_channels:
          - "#releases"
database:
  host: 172.16.0.1
  service:
    exposeToInternet: "true"
    annotations:
      "external-dns.alpha.kubernetes.io/hostname": "${local.statusbay_database_endpoint}."

Apparently i messed up and you actually allow configuring the service type so you can ignore 1).

@kaplanelad
Copy link
Contributor

Thanks @vmarchaud for sharing your (GKE) configuration.
I'll go over the configuration and improve our chart.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants