diff --git a/charts/fission-all/templates/controller/clusterrole.yaml b/charts/fission-all/templates/controller/clusterrole.yaml index 21544d7d..045fc23d 100644 --- a/charts/fission-all/templates/controller/clusterrole.yaml +++ b/charts/fission-all/templates/controller/clusterrole.yaml @@ -1,4 +1,4 @@ -{{- if or (.Values.controller.enabled) (.Values.influxdb.enabled) }} +{{- if .Values.controller.enabled }} apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: diff --git a/charts/fission-all/templates/controller/clusterrolebinding.yaml b/charts/fission-all/templates/controller/clusterrolebinding.yaml index a4ec9b20..b2de5e7d 100644 --- a/charts/fission-all/templates/controller/clusterrolebinding.yaml +++ b/charts/fission-all/templates/controller/clusterrolebinding.yaml @@ -1,4 +1,4 @@ -{{- if or (.Values.controller.enabled) (.Values.influxdb.enabled) }} +{{- if .Values.controller.enabled }} kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: diff --git a/charts/fission-all/templates/controller/deployment.yaml b/charts/fission-all/templates/controller/deployment.yaml index 8df20d76..aad68e71 100644 --- a/charts/fission-all/templates/controller/deployment.yaml +++ b/charts/fission-all/templates/controller/deployment.yaml @@ -1,4 +1,4 @@ -{{- if or (.Values.controller.enabled) (.Values.influxdb.enabled) }} +{{- if .Values.controller.enabled }} apiVersion: apps/v1 kind: Deployment metadata: diff --git a/charts/fission-all/templates/controller/role-fission-cr.yaml b/charts/fission-all/templates/controller/role-fission-cr.yaml index 645b550e..c4658959 100644 --- a/charts/fission-all/templates/controller/role-fission-cr.yaml +++ b/charts/fission-all/templates/controller/role-fission-cr.yaml @@ -1,4 +1,4 @@ -{{- if or (.Values.controller.enabled) (.Values.influxdb.enabled) }} +{{- if .Values.controller.enabled }} {{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "controller") .) }} {{- if not .Values.singleDefaultNamespace }} diff --git a/charts/fission-all/templates/controller/serviceaccount.yaml b/charts/fission-all/templates/controller/serviceaccount.yaml index 235460d0..61aef973 100644 --- a/charts/fission-all/templates/controller/serviceaccount.yaml +++ b/charts/fission-all/templates/controller/serviceaccount.yaml @@ -1,4 +1,4 @@ -{{- if or (.Values.controller.enabled) (.Values.influxdb.enabled) }} +{{- if .Values.controller.enabled }} apiVersion: v1 kind: ServiceAccount metadata: diff --git a/charts/fission-all/templates/controller/servicemonitor.yaml b/charts/fission-all/templates/controller/servicemonitor.yaml index 5a67426d..3786d846 100644 --- a/charts/fission-all/templates/controller/servicemonitor.yaml +++ b/charts/fission-all/templates/controller/servicemonitor.yaml @@ -1,4 +1,4 @@ -{{- if or (.Values.controller.enabled) (.Values.influxdb.enabled) }} +{{- if .Values.controller.enabled }} {{- if .Values.serviceMonitor.enabled }} apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor diff --git a/charts/fission-all/templates/controller/svc.yaml b/charts/fission-all/templates/controller/svc.yaml index 2e6132f4..d1c424e6 100644 --- a/charts/fission-all/templates/controller/svc.yaml +++ b/charts/fission-all/templates/controller/svc.yaml @@ -1,4 +1,4 @@ -{{- if or (.Values.controller.enabled) (.Values.influxdb.enabled) }} +{{- if .Values.controller.enabled }} apiVersion: v1 kind: Service metadata: diff --git a/pkg/fission-cli/logdb/influxdb.go b/pkg/fission-cli/logdb/influxdb.go index 15df33fc..7d1146be 100644 --- a/pkg/fission-cli/logdb/influxdb.go +++ b/pkg/fission-cli/logdb/influxdb.go @@ -22,8 +22,7 @@ import ( "encoding/json" "fmt" "net/http" - "net/url" - "path" + "os" "sort" "strconv" "strings" @@ -42,11 +41,20 @@ const ( ) func NewInfluxDB(ctx context.Context, logDBOptions LogDBOptions) (InfluxDB, error) { - server, err := util.GetApplicationUrl(ctx, logDBOptions.Client, "application=fission-api") - if err != nil { - return InfluxDB{}, err + + dbType := INFLUXDB + // retrieve db auth config from the env + url := os.Getenv(fmt.Sprintf("%s_URL", dbType)) + if url == "" { + // Portforward to the influxdb + localRouterPort, err := util.SetupPortForward(ctx, logDBOptions.Client, util.GetFissionNamespace(), "svc=influxdb") + if err != nil { + return InfluxDB{}, err + } + url = "http://127.0.0.1:" + localRouterPort + "/query" } - return InfluxDB{endpoint: server}, nil + + return InfluxDB{endpoint: url}, nil } type InfluxDB struct { @@ -89,7 +97,7 @@ func (influx InfluxDB) GetLogs(ctx context.Context, filter LogFilter, output *by query := influxdbClient.NewQueryWithParameters(queryCmd, INFLUXDB_DATABASE, "", parameters) logEntries := []LogEntry{} - response, err := influx.query(query) + response, err := influx.query(ctx, query) if err != nil { return err } @@ -158,18 +166,16 @@ func (influx InfluxDB) GetLogs(ctx context.Context, filter LogFilter, output *by return nil } -func (influx InfluxDB) query(query influxdbClient.Query) (*influxdbClient.Response, error) { - queryURL, err := url.Parse(influx.endpoint) - if err != nil { - return nil, err - } - // connect to controller first, then controller will redirect our query command - // to influxdb and proxy back the db response. - queryURL.Path = path.Clean(fmt.Sprintf("%s/proxy/%s", queryURL.Path, INFLUXDB)) - req, err := http.NewRequest(http.MethodPost, queryURL.String(), nil) +func (influx InfluxDB) query(ctx context.Context, query influxdbClient.Query) (*influxdbClient.Response, error) { + + username := os.Getenv(fmt.Sprintf("%s_USERNAME", INFLUXDB)) + password := os.Getenv(fmt.Sprintf("%s_PASSWORD", INFLUXDB)) + + req, err := http.NewRequest(http.MethodPost, influx.endpoint, nil) if err != nil { return nil, errors.Wrap(err, "error creating request for log proxy") } + req.SetBasicAuth(username, password) parametersBytes, err := json.Marshal(query.Parameters) if err != nil { diff --git a/skaffold.yaml b/skaffold.yaml index c4d737bd..1db143a5 100644 --- a/skaffold.yaml +++ b/skaffold.yaml @@ -117,9 +117,6 @@ profiles: - op: replace path: /deploy/helm/releases/0/setValues/routerServiceType value: NodePort - - op: replace - path: /deploy/helm/releases/0/setValues/influxdb.enabled - value: true - op: replace path: /deploy/helm/releases/0/setValues/canaryDeployment.enabled value: true diff --git a/test/tests/test_archive_pruner.sh b/test/tests/test_archive_pruner.sh index 99be9372..1a1811a2 100755 --- a/test/tests/test_archive_pruner.sh +++ b/test/tests/test_archive_pruner.sh @@ -1,5 +1,5 @@ #!/bin/bash -set -euo pipefail +# set -euo pipefail source $(dirname $0)/../utils.sh TEST_ID=$(generate_test_id) @@ -51,13 +51,12 @@ get_archive_url_from_package() { url=`kubectl -n default get package $1 -ojsonpath='{.spec.deployment.url}'` } +urldecode() { : "${*//+/ }"; echo -e "${_//%/\\x}"; } + get_archive_from_storage() { - storage_service_url=$1 - controller_ip=$CONTROLLER_IP - controller_proxy_url=`echo $storage_service_url | sed -e "s/storagesvc.$FISSION_NAMESPACE/$controller_ip\/proxy\/storage/"` - log "controller_proxy_url=$controller_proxy_url" - http_status=`curl --retry 5 -sw "%{http_code}" $controller_proxy_url -o /dev/null` - echo "http_status: $http_status" + # storage_service_url=$1 + archive_url=$( urldecode $1) + fission archive list | grep $(echo "$archive_url" |cut -d= -f 2)| wc -l } #1. declare trap to cleanup for EXIT @@ -94,18 +93,18 @@ main() { log "deleted packages : $pkg_1 $pkg_2" # curl on the archive url - get_archive_from_storage $url_1 - log "http_status for $url_1 : $http_status" - if [ "$http_status" -ne "200" ]; then - log "Archive $url_1 absent on storage, while expected to be present" + archiveCount=$(get_archive_from_storage $url_1) + log "recieved archive status for $url_1" + if [[ $archiveCount -eq 0 ]]; then + log "archive not found" exit 1 fi # curl on the archive url - get_archive_from_storage $url_2 - log "http_status for $url_2 : $http_status" - if [ "$http_status" -ne "200" ]; then - log "Archive $url_2 absent on storage, while expected to be present" + archiveCount=$(get_archive_from_storage $url_2) + log "recieved archive status for $url_2 " + if [[ $archiveCount -eq 0 ]]; then + log "archive not found" exit 1 fi @@ -114,20 +113,20 @@ main() { sleep 300 # curl on the archive url - get_archive_from_storage $url_1 - log "http_status for $url_1 : $http_status" - if [ "$http_status" -ne "404" ]; then - log "Archive $url_1 should have been recycled, but curl returned $http_status, while expected status is 404." + archiveCount=$(get_archive_from_storage $url_1) + if [[ $archiveCount -ne 0 ]]; then + log "archive found" exit 1 fi + log "archive pruned for $url_1 " # curl on the archive url - get_archive_from_storage $url_2 - log "http_status for $url_2 : $http_status" - if [ "$http_status" -ne "404" ]; then - log "Archive $url_2 should have been recycled, but curl returned $http_status, while expected status is 404." + archiveCount=$(get_archive_from_storage $url_2) + if [[ $archiveCount -ne 0 ]]; then + log "archive found" exit 1 fi + log "archive pruned for $url_2 " log "Test archive pruner PASSED" }