mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-14 05:36:12 +00:00
Adding HTTPS and generic health checks to GCE
This commit is contained in:
@@ -16,13 +16,9 @@ limitations under the License.
|
|||||||
|
|
||||||
package gce
|
package gce
|
||||||
|
|
||||||
import (
|
import compute "google.golang.org/api/compute/v1"
|
||||||
"net/http"
|
|
||||||
|
|
||||||
compute "google.golang.org/api/compute/v1"
|
// Legacy HTTP Health Checks
|
||||||
)
|
|
||||||
|
|
||||||
// Health Checks
|
|
||||||
|
|
||||||
// GetHttpHealthCheck returns the given HttpHealthCheck by name.
|
// GetHttpHealthCheck returns the given HttpHealthCheck by name.
|
||||||
func (gce *GCECloud) GetHttpHealthCheck(name string) (*compute.HttpHealthCheck, error) {
|
func (gce *GCECloud) GetHttpHealthCheck(name string) (*compute.HttpHealthCheck, error) {
|
||||||
@@ -42,9 +38,6 @@ func (gce *GCECloud) UpdateHttpHealthCheck(hc *compute.HttpHealthCheck) error {
|
|||||||
func (gce *GCECloud) DeleteHttpHealthCheck(name string) error {
|
func (gce *GCECloud) DeleteHttpHealthCheck(name string) error {
|
||||||
op, err := gce.service.HttpHealthChecks.Delete(gce.projectID, name).Do()
|
op, err := gce.service.HttpHealthChecks.Delete(gce.projectID, name).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if isHTTPErrorCode(err, http.StatusNotFound) {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return gce.waitForGlobalOp(op)
|
return gce.waitForGlobalOp(op)
|
||||||
@@ -59,8 +52,88 @@ func (gce *GCECloud) CreateHttpHealthCheck(hc *compute.HttpHealthCheck) error {
|
|||||||
return gce.waitForGlobalOp(op)
|
return gce.waitForGlobalOp(op)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ListHttpHealthCheck lists all HttpHealthChecks in the project.
|
// ListHttpHealthChecks lists all HttpHealthChecks in the project.
|
||||||
func (gce *GCECloud) ListHttpHealthChecks() (*compute.HttpHealthCheckList, error) {
|
func (gce *GCECloud) ListHttpHealthChecks() (*compute.HttpHealthCheckList, error) {
|
||||||
// TODO: use PageToken to list all not just the first 500
|
// TODO: use PageToken to list all not just the first 500
|
||||||
return gce.service.HttpHealthChecks.List(gce.projectID).Do()
|
return gce.service.HttpHealthChecks.List(gce.projectID).Do()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Legacy HTTPS Health Checks
|
||||||
|
|
||||||
|
// GetHttpsHealthCheck returns the given HttpsHealthCheck by name.
|
||||||
|
func (gce *GCECloud) GetHttpsHealthCheck(name string) (*compute.HttpsHealthCheck, error) {
|
||||||
|
return gce.service.HttpsHealthChecks.Get(gce.projectID, name).Do()
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdateHttpsHealthCheck applies the given HttpsHealthCheck as an update.
|
||||||
|
func (gce *GCECloud) UpdateHttpsHealthCheck(hc *compute.HttpsHealthCheck) error {
|
||||||
|
op, err := gce.service.HttpsHealthChecks.Update(gce.projectID, hc.Name, hc).Do()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return gce.waitForGlobalOp(op)
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteHttpsHealthCheck deletes the given HttpsHealthCheck by name.
|
||||||
|
func (gce *GCECloud) DeleteHttpsHealthCheck(name string) error {
|
||||||
|
op, err := gce.service.HttpsHealthChecks.Delete(gce.projectID, name).Do()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return gce.waitForGlobalOp(op)
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateHttpsHealthCheck creates the given HttpsHealthCheck.
|
||||||
|
func (gce *GCECloud) CreateHttpsHealthCheck(hc *compute.HttpsHealthCheck) error {
|
||||||
|
op, err := gce.service.HttpsHealthChecks.Insert(gce.projectID, hc).Do()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return gce.waitForGlobalOp(op)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ListHttpsHealthChecks lists all HttpsHealthChecks in the project.
|
||||||
|
func (gce *GCECloud) ListHttpsHealthChecks() (*compute.HttpsHealthCheckList, error) {
|
||||||
|
// TODO: use PageToken to list all not just the first 500
|
||||||
|
return gce.service.HttpsHealthChecks.List(gce.projectID).Do()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Generic HealthCheck
|
||||||
|
|
||||||
|
// GetHealthCheck returns the given HealthCheck by name.
|
||||||
|
func (gce *GCECloud) GetHealthCheck(name string) (*compute.HealthCheck, error) {
|
||||||
|
return gce.service.HealthChecks.Get(gce.projectID, name).Do()
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdateHealthCheck applies the given HealthCheck as an update.
|
||||||
|
func (gce *GCECloud) UpdateHealthCheck(hc *compute.HealthCheck) error {
|
||||||
|
op, err := gce.service.HealthChecks.Update(gce.projectID, hc.Name, hc).Do()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return gce.waitForGlobalOp(op)
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteHealthCheck deletes the given HealthCheck by name.
|
||||||
|
func (gce *GCECloud) DeleteHealthCheck(name string) error {
|
||||||
|
op, err := gce.service.HealthChecks.Delete(gce.projectID, name).Do()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return gce.waitForGlobalOp(op)
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateHealthCheck creates the given HealthCheck.
|
||||||
|
func (gce *GCECloud) CreateHealthCheck(hc *compute.HealthCheck) error {
|
||||||
|
op, err := gce.service.HealthChecks.Insert(gce.projectID, hc).Do()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return gce.waitForGlobalOp(op)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ListHealthChecks lists all HealthCheck in the project.
|
||||||
|
func (gce *GCECloud) ListHealthChecks() (*compute.HealthCheckList, error) {
|
||||||
|
// TODO: use PageToken to list all not just the first 500
|
||||||
|
return gce.service.HealthChecks.List(gce.projectID).Do()
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user