If you are going to update the secret with the new cert, it is meant to be picked up by the GCP ingress controller, and this one has to update the certificate on GCP. You can use the cert-manager to renew the certificate automatically.
Here is another process that works:
Create another secret with the new ssl certificate:
kubectl create secret tls mynewsecret --key mynewkey.key --cert mynewcert.crt
Edit ingress.yaml file in order to change the secretName:
...
apiVersion: extensions/v1beta1
kind: Ingress
spec:
tls:
secretName: mynewsecret
...
Apply the ingress.yaml:
kubectl apply -f ./ingress.yaml
You can also go to Kubernetes Engine > Services & Ingress > "Ingress"
tab, click on the ingress you need to update its certificate, and click on the Edit link up on top to update its YAML. Use the information in the following URL as reference How to update ssl certificate for ingress https load balancer.
Another way to do it can be through the Console. Go to Network Services > Load Balancing and click on the Advanced menu link, then click on the Certificates tab to see what certs have been added to the project. Verify if your new cert shows up there as being in use by your ingress. A normal process with the Console UI is:
1.Add the new version of the cert to the project by clicking on "Create SSL Certificate" in the Advanced menu of the "Load balancing" interface.
2.Upload the new cert file in that interface you visited in step 1. Give it a meaningful name (let's call it "my-new-cert").
3.Update your ingress’ Deployment Manager config file to set properties.metadata.annotations.ingress.gcp.kubernetes.io/pre-shared-cert to my-new-cert.
4.Redeploy the ingress with a Deployment Manager command.
You can use this thread as reference too SSL Certificate not updating in Google Cloud Console GKE.
Finally, to update the SSL certificate via Heml Chart, take a look into this information How can I upgrade SSL certificate via helm chart?: