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

Fixe connect endpoint rendering issue in Firefox #3678

Closed
wants to merge 53 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
5e65cd7
Minor updates
nwmac Mar 31, 2019
9c9898a
Neil's fixes
nwmac Apr 2, 2019
26f1e47
Merge remote-tracking branch 'origin/susecon' into susecon-nwm
nwmac Apr 2, 2019
1b55577
Merge remote-tracking branch 'origin/susecon' into susecon-nwm
nwmac Apr 2, 2019
998f5c6
FIXES
nwmac Apr 2, 2019
7ecb3fa
Merge remote-tracking branch 'origin/susecon' into susecon-nwm
nwmac Apr 2, 2019
29a15e9
Fixes, docker AIO build fix
nwmac Apr 2, 2019
dfbd3be
Merge remote-tracking branch 'origin/susecon' into susecon-nwm
nwmac Apr 3, 2019
8df21b7
Refinements
nwmac Apr 4, 2019
91ad7f5
Tweaks
nwmac Apr 4, 2019
13be7b1
Merge remote-tracking branch 'origin/susecon' into susecon-nwm
nwmac Apr 4, 2019
f08fcb5
Merge pull request #154 from SUSE/sidenav-changes
nwmac Apr 26, 2019
2264935
Merge remote-tracking branch 'upstream/v2-master' into pipeline-updates
nwmac Apr 29, 2019
d987b71
Merge pull request #157 from SUSE/pipeline-updates
nwmac Apr 29, 2019
b809960
Merge remote-tracking branch 'upstream/v2-master' into v2-master
nwmac Apr 30, 2019
a255c19
WIP: Build and gtag AIO image
nwmac Apr 30, 2019
a6a4f3a
Remove unused DC image
nwmac Apr 30, 2019
1fc5d9b
Remove logging
nwmac Apr 30, 2019
0f60f2e
Fix docker org
nwmac Apr 30, 2019
8d87a2a
Debug
nwmac Apr 30, 2019
8281ab9
Merge remote-tracking branch 'upstream/v2-master' into v2-master
nwmac Apr 30, 2019
8d5cea5
Add missing input
nwmac Apr 30, 2019
e0df313
Merge pull request #166 from SUSE/upstream-merge
nwmac Apr 30, 2019
9ac8250
Add missing input
nwmac May 1, 2019
2f27d40
Fix docker image check
nwmac May 1, 2019
12fc005
Fix helper
nwmac May 1, 2019
d7ce1b1
Debugging
nwmac May 1, 2019
10b1b72
Fix
nwmac May 1, 2019
9176e46
Fix
nwmac May 1, 2019
715f181
Fix
nwmac May 1, 2019
ca16246
Fix
nwmac May 1, 2019
207feb2
Fix
nwmac May 1, 2019
c6f1f8c
Final fixes
nwmac May 1, 2019
e19eae2
Fix typo
nwmac May 1, 2019
d5dccf1
Add canary tag
nwmac May 2, 2019
8852b9a
Merge remote-tracking branch 'nwm/v2-master' into canary
nwmac May 2, 2019
7df2a64
Re-enable Helm feature
nwmac May 2, 2019
6313b3d
Add logging during customization
nwmac May 2, 2019
6663e2e
Fix typo
nwmac May 3, 2019
807fc0c
Docker AIO does not build with custom-src folder
nwmac May 3, 2019
e17b58b
Merge pull request #168 from SUSE/fix-typo
richard-cox May 3, 2019
efa1d90
Merge pull request #169 from SUSE/add-customization-log
richard-cox May 3, 2019
f6da0fc
Merge remote-tracking branch 'upstream/v2-master' into v2-master
nwmac May 3, 2019
fb74ea4
Merge pull request #170 from SUSE/upstream-merge-latest
nwmac May 3, 2019
aa193cb
Add AWS Auth
nwmac May 16, 2019
295c38c
Tidy up auth providers for Kubernetes, add OIDC support for Helm
nwmac May 16, 2019
c226583
Moer tidy ups
nwmac May 17, 2019
9c9722d
Fix helm sql datastore to return values.yaml
nwmac May 17, 2019
08d873d
Merge remote-tracking branch 'origin/v2-master' into renable-helm-fea…
nwmac May 17, 2019
f376546
Merge remote-tracking branch 'origin/renable-helm-feature' into code-…
nwmac May 17, 2019
ad64cc3
Fix OIDC Token refresh
nwmac May 20, 2019
8d256ce
Fix logging msg
nwmac May 20, 2019
257b81f
Fix firefox issues
nwmac Jun 21, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 6 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,8 @@ This release contains a number of fixes and improvements:
- Cannot deploy application from folder upload [\#3188](https://github.com/cloudfoundry-incubator/stratos/pull/3188)
- Fix issue where only first 100 services were shown in service marketplace [\#3161](https://github.com/cloudfoundry-incubator/stratos/pull/3161)
- Fix marketplace provisioning for asynchronous services [\#3086](https://github.com/cloudfoundry-incubator/stratos/pull/3086)
- Fix K8S Services not using correct label to select them [\#129](https://github.com/SUSE/stratos/pull/129)
- Fix issue with large files being sent into request URL [\#90](https://github.com/SUSE/stratos/pull/90)

**Improvements:**
- App Deploy: Add Public GitLab Repository support [\#3239](https://github.com/cloudfoundry-incubator/stratos/pull/3239)
Expand Down Expand Up @@ -106,6 +108,9 @@ This release contains a number of fixes and improvements:
- Add user has roles filter to users tables [\#3258](https://github.com/cloudfoundry-incubator/stratos/pull/3258)
- Deploy App: Add notification toast [\#3242](https://github.com/cloudfoundry-incubator/stratos/pull/3242)
- Update app instance cell data when scaling up [\#3133](https://github.com/cloudfoundry-incubator/stratos/pull/3133)
- Use product branding in place of Stratos [\#126](https://github.com/SUSE/stratos/pull/126)
- Show error on Kubernetes pages and Kubernetes endpoint page [\#96](https://github.com/SUSE/stratos/pull/96)
- Add validation when connecting Kubernetes endpoints [\#94](https://github.com/SUSE/stratos/pull/94)

## 2.2.0

Expand Down Expand Up @@ -370,7 +375,7 @@ This is the first release candidate of Version 2 of Stratos.
The main focus of this release are bug fixes for release.

**Improvements:**
- Add ingress example and docs for kubernetes deployment [\#2510](https://github.com/cloudfoundry-incubator/stratos/pull/2510)
- Add ingress example and docs for kubernetes deloyment [\#2510](https://github.com/cloudfoundry-incubator/stratos/pull/2510)

**Fixed bugs:**
- Fix for app count being stuck after adding an app in org card [\#2511](https://github.com/cloudfoundry-incubator/stratos/pull/2511)
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Stratos can be deployed in the following environments:
Please see our [Troubleshooting](docs/troubleshooting) page.

## Project Planning
We use [ZenHub](https://zenhub.com) for project planning. Feel free to head over to the [Boards](https://github.com/cloudfoundry-incubator/stratos#boards)
We use [ZenHub](https://zenhub.com) for project planning. Feel free to head over to the [Boards](https://github.com/SUSE/stratos#boards)
tab and have a look through our pipelines and milestones. Please note in order to view the Github ZenHub Boards tab you will need the [ZenHub
browser extension](https://www.zenhub.com/extension). Alternatively, to view the planning board without the extension visit our [ZenHub Project Page](https://app.zenhub.com/workspace/o/cloudfoundry-incubator/stratos/boards)

Expand All @@ -53,7 +53,7 @@ Take a look at the [Development Roadmap](docs/roadmap.md) to see where we are he

Browse through features and issues in the project's [issues](https://github.com/cloudfoundry-incubator/stratos/issues) page or [Zenhub Board](https://github.com/cloudfoundry-incubator/stratos#boards).

What kind of code is in Stratos? We've integrated [Code Climate](https://codeclimate.com) for some code quality and maintainability metrics. Take a stroll around the [project page](https://codeclimate.com/github/cloudfoundry-incubator/stratos)
What kind of code is in Stratos? We've integrated [Code Climate](https://codeclimate.com) for some code quality and maintainability metrics. Take a stroll around the [project page](https://codeclimate.com/github/SUSE/stratos)

## Contributing

Expand Down
39 changes: 39 additions & 0 deletions custom-src/frontend/app/custom/custom-routing.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

const kubernetes: Routes = [
{
path: 'kubernetes',
loadChildren: './kubernetes/kubernetes.module#KubernetesModule',
data: {
stratosNavigation: {
text: 'Kubernetes',
matIcon: 'kubernetes',
matIconFont: 'stratos-icons',
position: 60,
requiresEndpointType: 'k8s'
}
}
},
{
path: 'monocular',
loadChildren: './helm/helm.module#HelmModule',
data: {
stratosNavigation: {
text: 'Helm',
matIcon: 'helm',
matIconFont: 'stratos-icons',
position: 65,
requiresEndpointType: 'helm'
}
}
}
];

@NgModule({
imports: [
RouterModule.forRoot(kubernetes),
],
declarations: []
})
export class CustomRoutingModule { }
67 changes: 67 additions & 0 deletions custom-src/frontend/app/custom/custom.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
import { NgModule } from '@angular/core';
import { Router } from '@angular/router';
import { Store } from '@ngrx/store';

import { AppState } from '../../../store/src/app-state';
import { EndpointHealthCheck } from '../../endpoints-health-checks';
import { CoreModule } from '../core/core.module';
import { Customizations, CustomizationsMetadata } from '../core/customizations.types';
import { EndpointsService } from '../core/endpoints.service';
import { MDAppModule } from '../core/md.module';
import { SharedModule } from '../shared/shared.module';
import { DemoHelperComponent } from './demo/demo-helper/demo-helper.component';
import { KubernetesSetupModule } from './kubernetes/kubernetes.setup.module';
import { KubeHealthCheck } from './kubernetes/store/kubernetes.actions';
import { SuseAboutInfoComponent } from './suse-about-info/suse-about-info.component';
import { SuseLoginComponent } from './suse-login/suse-login.component';
import { HelmModule } from './helm/helm.module';
import { HelmSetupModule } from './helm/helm.setup.module';

const SuseCustomizations: CustomizationsMetadata = {
copyright: '© 2019 SUSE',
hasEula: true,
aboutInfoComponent: SuseAboutInfoComponent
};

@NgModule({
imports: [
CoreModule,
SharedModule,
MDAppModule,
KubernetesSetupModule,
HelmModule,
HelmSetupModule
],
declarations: [
SuseLoginComponent,
SuseAboutInfoComponent,
DemoHelperComponent
],
entryComponents: [
SuseLoginComponent,
SuseAboutInfoComponent,
DemoHelperComponent,
],
providers: [
{ provide: Customizations, useValue: SuseCustomizations }
],
})
export class CustomModule {

static init = false;

constructor(endpointService: EndpointsService, store: Store<AppState>, router: Router) {
endpointService.registerHealthCheck(
new EndpointHealthCheck('k8s', (endpoint) => store.dispatch(new KubeHealthCheck(endpoint.guid)))
);
// Only update the routes once
if (!CustomModule.init) {
// Override the component used for the login route
const routeConfig = [...router.config];
const loginRoute = routeConfig.find(r => r.path === 'login') || {};
loginRoute.component = SuseLoginComponent;
router.resetConfig(routeConfig);
CustomModule.init = true;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<app-page-header>
<h1>SUSECON '19 Demo</h1>
</app-page-header>

<img src="https://127.0.0.1:4200/core/assets/custom/susecon-logo.svg" />
<h1>Helm Repositories</h1>

<ul>
<li>https://kubernetes-charts.storage.googleapis.com</li>
<li>https://cloudfoundry-incubator.github.io/stratos</li>
</ul>

<br>

<h1>Kube</h1>

<ul>
<li>https://eirinitp-eirinitp-cap-aks-f416cc-a7601367.hcp.eastus.azmk8s.io:443</li>
</ul>

<br>

<div class="demo-helper-buttons">
<button (click)="demo('hide')" mat-button color="primary">Hide Existing Endpoints</button>

<button (click)="demo('show')" mat-button color="primary">Reveal All Endpoints</button>

<button (click)="demo('cf')" mat-button color="primary">Reveal Cloud Foundry Endpoints</button>

<button (click)="demo('metrics')" mat-button color="primary">Reveal Metrics Endpoints</button>

<button (click)="demo('k8s')" mat-button color="primary">Reveal Kubernetes Endpoints</button>
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
h1 {
font-size: 18px;
}

li {
margin-bottom: 8px;
}

img {
float: right;
}

br {
margin-top: 48px;
}

.demo-helper-buttons {
align-items: flex-start;
display: flex;
flex-direction: column;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import { HttpClientModule } from '@angular/common/http';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';

import { TabNavService } from '../../../../tab-nav.service';
import { BaseTestModules } from '../../../../test-framework/cloud-foundry-endpoint-service.helper';
import { DemoHelperComponent } from './demo-helper.component';

describe('DemoHelperComponent', () => {
let component: DemoHelperComponent;
let fixture: ComponentFixture<DemoHelperComponent>;

beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [DemoHelperComponent],
imports: [
...BaseTestModules,
HttpClientModule
],
providers: [
TabNavService
]
})
.compileComponents();
}));

beforeEach(() => {
fixture = TestBed.createComponent(DemoHelperComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});

it('should create', () => {
expect(component).toBeTruthy();
});
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import { HttpClient } from '@angular/common/http';
import { Component } from '@angular/core';
import { Store } from '@ngrx/store';
import { map } from 'rxjs/operators';

import { AppState } from '../../../../../store/src/app-state';
import { StratosAction, StratosActionType } from '../../../core/extension/extension-service';


@StratosAction({
type: StratosActionType.Endpoints,
label: 'Demo Helper',
link: 'demoHelper',
icon: 'tv',
visible: (store: Store<AppState>) => store.select('auth').pipe(
map(auth => auth.sessionData.plugins && auth.sessionData.plugins.demo)
),
})
@Component({
selector: 'app-demo-helper',
templateUrl: './demo-helper.component.html',
styleUrls: ['./demo-helper.component.scss']
})
export class DemoHelperComponent {

constructor(
private httpClient: HttpClient,
) { }

public demo(action: string) {
const url = `/pp/v1/demo/endpoints/${action}`;
this.httpClient.post(url, null, {}).subscribe(d => {
window.location.assign('/endpoints');
});
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<app-page-header [breadcrumbs]="breadcrumbs">
<h1>{{ title }}</h1>
</app-page-header>

<app-chart-details></app-chart-details>
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import { ActivatedRoute, Router } from '@angular/router';
import { Component, OnInit } from '@angular/core';

@Component({
selector: 'app-monocular',
templateUrl: './monocular.component.html',
styleUrls: ['./monocular.component.scss'],
})
export class MonocularChartViewComponent implements OnInit {

public breadcrumbs = [];

public title = '';

constructor(private route: ActivatedRoute) { }

public ngOnInit() {

// Set breadcrumbs
const breadcrumbs = [
{ value: 'Helm' },
{ value: 'Charts', routerLink: '/monocular/charts' }];

// Deconstruct the URL
const parts = this.route.snapshot.params;
this.title = parts.chartName;

if (!!parts.version) {
breadcrumbs.push(
{ value: this.title, routerLink: `/monocular/charts/${parts.repo}/${parts.chartName}` }
);
this.title = parts.version;
}

this.breadcrumbs = [{ breadcrumbs }];
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<app-page-header>
Install Chart
</app-page-header>
<app-steppers [cancel]="cancelUrl">
<app-step [title]="'Kubernetes'" [valid]="validate$ | async">
<form [formGroup]="details" class="stepper-form">
<b>Select the Kubernetes cluster to install to</b>
<mat-form-field>
<mat-select formControlName="endpoint" name="endpoint">
<mat-option *ngFor="let kube of kubeEndpoints$ | async" [value]="kube.guid">
<span>{{ kube.name }}</span>
</mat-option>
</mat-select>
</mat-form-field>
<br>
<b>Specify name and namespace for the installation</b>
<mat-form-field>
<input matInput placeholder="Name" name="releaseName" formControlName="releaseName" autocomplete="off">
</mat-form-field>

<mat-form-field>
<input matInput placeholder="Namespace" name="releaseNamespace" formControlName="releaseNamespace"
autocomplete="off">
</mat-form-field>
</form>
</app-step>
<app-step [title]="'Overrides'" [onNext]="submit" [finishButtonText]="'Install'" [onEnter]="onEnterOverrides">
<form [formGroup]="overrides" class="stepper-form">
<h3 class="helm-create-release">Enter YAML Value Overrides</h3>
<mat-form-field [floatLabel]="'always'">
<mat-label>Values</mat-label>
<textarea #overridesYamlTextArea class="overrides__yaml" matInput formControlName="values" name="Values"
[matTextareaAutosize]="true" cdkAutosizeMinRows="6" cdkAutosizeMaxRows="8"></textarea>
</mat-form-field>
</form>
</app-step>
</app-steppers>
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
:host {
flex: 1;
}

.helm-create-release {
font-size: 14px;
}

form {
flex: 1;
}

.overrides {
&__yaml {
background-color: rgba(0, 0, 0, .1);
font-family: 'Source Code Pro', monospace;
}
}
Loading