WIP: 7.0.0

This PR brings the version 7.0.0 of Gotenberg.
Fixes
Chromium

user-agent flag for Chromium - fixes #311
preferCSSPageSize option for Chromium - fixes #258

LibreOffice / unoonv

Support all document types - fixes #248

Webhook

Call webhook in case of error - fixes #181

Misc

Support upper case extensions - fixes #228
Garbage Collector - fixes #192
Provide a custom trace - fixes #170
Better explanations about trace (request ID) in logs - fixes #180

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@5a98790). Click here to learn what that means.
The diff coverage is n/a.

:exclamation: Current head 8422538 differs from pull request most recent head 0e41743. Consider uploading reports for the commit 0e41743 to get more accurate results

@@           Coverage Diff           @@
##             main     #319   +/-   ##
=======================================
  Coverage        ?   94.30%
=======================================
  Files           ?       25
  Lines           ?     2177
  Branches        ?        0
=======================================
  Hits            ?     2053
  Misses          ?       77
  Partials        ?       47

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5a98790...0e41743. Read the comment docs.

Wow, thats huge 🎉
A lot of work for client library with different endpoints and custom modules introduction 😅

↑ Wrong GitHub account :)


Hill Cipher

A  script to decrypt or decrypt a text using hill cipher.

I would like to work on this. Can you please assign me on this?

Can i also work on this? Could you assign me also for this work?

If this issue is for decryption then can i add the encryption script


Can we fetch the current price of the given symbol?

I was wondering is it possible to fetch the current price of the given symbol?
That will be a helpful feature during evaluation.

Hi @avatar-lavventura,
Yes, it's possible. You can get opening/closing prices with tradingview-ta (set interval to lowest: 1 minute for near real-time). However, I don't recommend it due to delay (see https://python-tradingview-ta.readthedocs.io/en/latest/faq.html#is-the-data-delayed). If you have an access to an exchange's API, that would be better.
If you still want to, you can modify this code:
from tradingview_ta import TA_Handler, Interval, Exchange

handler = TA_Handler(
    symbol="BTCUSDT",
    screener="crypto",
    exchange="binance",
    interval=Interval.INTERVAL_1_MINUTE
)

analysis = handler.get_analysis()

# Opening price
open_price = analysis.indicators["open"]
print(open_price)
# Output: 38423.76

# Closing price
close_price = analysis.indicators["close"]
print(close_price)
# Output: 38423.76

I hope this helps. If you still have questions, please reply. Otherwise, you may close this issue.

After intensive experimenting I found that on average the price is updated about every 27 seconds which isn't terrible to be free and not have to be configured with an external API. This could pair well with the math.isclose() function. This means you can get frequent enough price data updates and a custom actuation tolerance. This could prove useful for something like custom indicator checking, or making checks on the built-in indicators with this project.
Here is an example of what I am talking about:
`def buy_or_sell_btc():
handler = TA_Handler(
    symbol=BTC,
    screener="crypto",
    exchange="COINBASE",
    interval=Interval.INTERVAL_1_DAY
)

analysis = handler.get_analysis()

blue_line = analysis.indicators["MACD.macd"] #BLUE LINE
orange_line = analysis.indicators["MACD.signal"] #ORANGE LINE
rsi = analysis.indicators["RSI"]
ema_200 = analysis.indicators["EMA200"]
ema_20 = analysis.indicators["EMA20"]
ema_50 = analysis.indicators["EMA50"]
price = analysis.indicators['close']

if blue_line <= 0 and orange_line <= 0 and math.isclose(blue_line, orange_line, abs_tol = 8.00) == True and price < ema_200 and rsi < 50:
    print("GOOD TIME TO DCA BTC")
else: pass

if blue_line <= 0 and orange_line <= 0 and math.isclose(blue_line, orange_line, abs_tol = 8.00) == True and price > ema_200:
    print("GOOD TIME TO ENTER TRADE")
else: pass

if blue_line > 0 and orange_line > 0 and math.isclose(blue_line, orange_line, abs_tol = 9.00) == True and price > ema_200:
    print("GOOD TIME TO TAKE PROFIT BTC")
else: pass

if math.isclose(ema_20, ema_50, abs_tol = 50.00) == True:
    print("GOLDEN CROSS OR BEARISH CROSS FOR BTC")
else: pass`

@RaymondTerry Thank you for your valuable time. 27 second interval is reasonable on my end. On the example why did you keep the interval as 1 day (interval=Interval.INTERVAL_1_DAY), can we keep it as 1 minute?
=> An example to fetch data for for the close price for Silver/USD would be also helpful.Its link (https://www.tradingview.com/chart/bHXZrXAy/?symbol=TVC%3ASILVER)? I believe its symbol is SILVER.

binance api makes it possible to get latest price of given symbol and i think its the best way to do it:
from requests import get

def get_price(symbol):
    url = f'https://api.binance.com/api/v1/ticker/price?symbol={symbol}'
    request = get(url)
    price = float(loads(request.text)['price'])
    return price

@oskvr37 I don't want crypto pairs. I just want to get close prices of Silver, Gold US Stocks

@oskvr37

@RaymondTerry Thank you for your detalied answer. 27 second interval is reasonable on my end. On the example why did you keep the interval as 1 day (interval=Interval.INTERVAL_1_DAY), can we keep it as 1 minute, or 15 minute?
Could you also provide an example for:
=> How to fetch close price of Silver/USD? Its link is (https://www.tradingview.com/chart/bHXZrXAy/?symbol=TVC%3ASILVER). I believe its symbol is SILVER.
I was able to get Silver's price from yahoo finance, but I am not sure how othen does Yahoo updates prices.
import yfinance as yf

def get_silver() -> float:
    """Return silver price."""
    msft = yf.Ticker("SI=F")
    info = msft.info
    silver_oz_price = info["regularMarketPrice"]

To be more detailed I found when calling a function outside of a file that uses at least the daily time frame or the minute time frame that they get updated on average every 27 seconds. I have not tested any of the other time frames. This may be because regardless of what timeframe it is set to the "close" might be considered whatever the current price is at the time the function is called, which makes it so that each time the function is called it is updated just as frequent as any time frame. That is only my theory so far. What makes this very odd is that when consecutively calling the function in the same file on the daily time frame it sometimes does not get updated as frequently.  Something else I noticed is that it will get updated if you manually call the function, but in a loop it will eventually.
Here is an example to try:
tradingview_test.py
from tradingview_ta import *
import time

def buy_or_sell():

    handler = TA_Handler(
        symbol="BTCUSD",
        screener="crypto",
        exchange="COINBASE",
        interval=Interval.INTERVAL_1_DAY
    )

    analysis = handler.get_analysis()

    price = analysis.indicators['close']

    print(price)
    print(btc_price())

def btc_price():

    btc_price = TA_Handler(
        symbol="BTCUSD",
        screener="crypto",
        exchange="COINBASE",
        interval=Interval.INTERVAL_1_MINUTE
    )

    analysis = btc_price.get_analysis()

    price = analysis.indicators['close']

    return price

if you run buy_or_sell() in a loop with a 27 second pause you should see the daily one stay the same longer than the minute.
interval_should_update_here.py
import tradingview_test
import time

def tvt():
    tradingview_test.buy_or_sell()

starttime = time.time()

while(True):
    tvt()
    time.sleep(27.0 - ((time.time() - starttime) % 27.0))

If you run this one which calls the function outside of the originating file they will both update just as frequently however. It is hard to explain this behavior, I don't even understand it and it could be coincidence for all I know.
As far as getting the price of silver and gold you will be looking at something like this:
Gold symbol: GC1!

Same exchange

def silver_price():

    handler = TA_Handler(
        symbol="SI1!",
        screener="america",
        exchange="COMEX",
        interval=Interval.INTERVAL_1_MINUTE
    )

    analysis = handler.get_analysis()

    price = analysis.indicators['close']

    print(price)

Unfortunately the futures is all they have available to scrape so far it seems. I also am looking for a way to get the total altcoin market cap for crypto and the total crypto market cap but it doesn't seem this project can scrape the indexes. The bitcoin dominance would also be useful as well.

@RaymondTerry For total total altcoin market cap, you can use ccxt. I am fetching binance's data with async calls and its better than tradingview I believe, I can make call in every 10 ms.
Here is its example code, not sure it has total cap tho.
https://github.com/ccxt/ccxt/blob/master/examples/py/async-binance-fetch-ticker-continuously.py

@avatar-lavventura Thank you for that resource. Currently I am working on a personal project that solely relies on preconfigured data sources(i.e not API's which require individual keys) and tradingview_ta seems to be a great one.  I will start uploading it when there is enough features. It essentially is a passive signal bot that checks for indicator value conditions to be met and sends sms alerts when the predetermined conditions are met. The only configuration it requires is a phone number and gmail account.

@RaymondTerry  Why do you send a sms alert? Instead you should sent a webhook into a your Python Flask server which can redirect it into your discord channel, which is the way I am doing.

@avatar-lavventura I did look into that, sms just seemed more convenient and more easily configurable for average users. Best of all sms is optional, so I can still add something like that to make a centralized channel that gets signal alerts for more than generally one person at a time. I think I'll actually integrate that. If you want I could even integrate it with yours seeing as I am less familiar with custom discord bots.


Swopping between two trezors does NOT give an alert

Mentioned in #329
If you have a trezor wallet showing in MBHD and then:

remove the trezor
insert a DIFFERENT trezor

you should see an alert asking if you want to use the new trezor but you don't.

Now if you swop between two trezors you also see an alert (as long as their device names are different).
Awaiting review and closing

Verified working (very smooth) :-)
Closing.


[FLINK-20625][pubsub,e2e] Add PubSubSource connector using FLIP-27

What is the purpose of the change

Originally from PR https://github.com/apache/flink/pull/15152, then https://github.com/apache/flink/pull/18823 to help finish the PR  for a new Pub/Sub connector that implements the Source API from FLIP-27

Brief change log

Rebased https://github.com/apache/flink/pull/15152 on master and fixed conflicts

Squashed the original changes (retaining @jakob-ed's authorship)
Moved new classes to packages that align with the FLIP-27 KafkaSource

Modified the E2E tests to fetch a bounded number of records from the Pub/Sub emulator
Rebased https://github.com/apache/flink/pull/18823 on externalized repository main, re-homing the change to the new directory structure.

Verifying this change
Please make sure both new and modified tests in this PR follows the conventions defined in our code quality guide: https://flink.apache.org/contributing/code-style-and-quality-common.html#testing
This change added tests and can be verified as follows:

Adds end-to-end test using the Pub/Sub emulator.

(example:)

Added integration tests for end-to-end deployment with large payloads (100MB)
Extended integration test for recovery after master (JobManager) failure
Added test that validates that TaskInfo is transferred only once across recoveries
Manually verified the change by running a 4 node cluser with 2 JobManagers and 4 TaskManagers, a stateful streaming program, and killing one JobManager and two TaskManagers during the execution, verifying that recovery happens correctly.

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? yes
If yes, how is the feature documented? docs / JavaDocs

@RyanSkraba Do you have any idea who could help with a review here?

@dchristle how about you? ;-)

Hi @RyanSkraba,
Thank you for shepherding and improving this connector implementation over the years. I'm hoping to help review & improve it so we can finally get it merged. I just opened https://github.com/RyanSkraba/flink-connector-gcp-pubsub/pull/1 to add some improvements based on my experience running this code in production. Our internal implementation has some other improvements, but they need to be properly cleaned up & can come in a later PR, as they aren't essential. Please take a look when you get a chance.

Just a quick update on this PR!  Thanks so much @dchristle for the review and the improvements -- I've included everything here in the PR and added you as a collaborator to this branch.  Please feel free to apply any additional changes that you've learned from your use in production!  That's really the most valuable source of info for a new connector.
I've applied the changes you've requested, as well as some other very minor code clean-ups suggested through the IDE (some unused exceptions, another missing Java generic and using a deprecated super-constructor).

could I know when this PR will be merged and release in which version? thx


ISSUE-879: Refactor service pool related classes into a single module

Fixes #879

+1 Nice refactoring to decouple streamline-cluster from multiple streamline modules.


Not able to run the example using personal Azure account.

Issue
When I run the 2-Authorization-I>2-call-arm>SPA example and login with my personal Azure account, I get the following error when I click on Tenants tab.
Error:
Error: invalid_scope: 70011 - [2023-02-06 10:14:27Z]: AADSTS70011: The provided value for the input parameter 'scope' is not valid. The scope 'https://management.azure.com/user_impersonation openid profile offline_access' does not exist....

This issue is for the sample

    - [ ] 1-1) Sign-in with Azure AD
    - [ ] 1-2) Sign-in with Azure AD B2C
    - [ ] 2-1) Acquire a Token and call Microsoft Graph
    - [ ] 3-1) Protect and call a web API on Azure AD
    - [ ] 3-2) Protect and call a web API on Azure AD B2C
    - [ ] 4-1) Deploy to Azure Storage and App Service
    - [ ] 4-2) Deploy to Azure Static App Service
    - [ ] 5-1) Call a web API using App Roles
    - [ ] 5-2) Call a web API using Security Groups
    - [ ] 6-1) Call Microsoft Graph using on-behalf-of flow
    - [ ] 6-3) Call a web API using Conditional Access Auth Context
    - [ ] 6-4) Sign-in with Hybrid SPA flow
    - [x]  Other

Other: Acquire a Token and call ARM API
This issue is for a

    - [x] bug report -> please search issues before submitting
    - [ ] question
    - [ ] feature request
    - [ ] documentation issue or request

Minimal steps to reproduce

Clone this repo.
Run the 2-Authorization-I/2-call-arm/SPA example.
Go to http://localhost:3000/
Login using personal Azure account.
Click on Tenants menu

Any log messages given by the failure

Error: invalid_scope: 70011 - [2023-02-06 10:14:27Z]: AADSTS70011: The provided value for the input parameter 'scope' is not valid. The scope 'https://management.azure.com/user_impersonation openid profile offline_access' does not exist....

Library version
"@azure/arm-resources-subscriptions": "^2.0.1",
"@azure/msal-browser": "~2.31.0",
"@azure/msal-react": "~1.4.10",
"@azure/storage-blob": "^12.11.0",

Browser and version

Edge

Hi @yolossn, I wasn't able to reproduce your error. Please share your MSAL configuration and MSAL logs. Also, make sure that you added the delegated permission user_impersonation for the Windows Azure Service Management API in the portal.

Hey, I am using my @outlook.com email to login. I use the same MSAL config that is provided in the example. Just changed the clientId and authority to 'https://login.microsoftonline.com/common.

Because you're using a multi-tenant with a Microsoft account (a guest user to the tenant), the tokens may be from the wrong authority. Try overriding the default authority in the token request by using the tenantId where you invited the guest user instead of their home tenant, which is the default, as shown below:
const request = {
        scopes: protectedResources.armTenants.scopes,
        account: account,
        authority: `https://login.microsoftonline.com/{guestUserTenatId}`,
    };

    const { login, result, error } = useMsalAuthentication(InteractionType.Popup, {
        ...request,
        redirectUri: '/redirect.html',
    });

For more information, check the following dynamic auth request.

Thanks for the reply, We are building a tool for any Azure user to login using their azure account and manage their K8s clusters, we want the user to access and manage the resources in their tenant. Something similar to this VSCode addon for Azure K8s.

@yolossn No worries; please let me know if you need any additional guidance.

@yolossn closing issue due to inactivity


[fr] Stale page "Installer Minikube"

This is a Bug Report

In all of documentation, it looks like we have same broken links, which is refer into: https://www.vmware.com/products/fusion but these page refers us into not found page.
Proposed Solution:
Replace links in documentation so, if someone like me just started reading kubernates documentation would not be surprised
Page to Update:
These page, and all translated documentation should be updated, click here:
https://kubernetes.io/fr/docs/tasks/tools/install-minikube/#installer-un-hyperviseur

The main issue here seems to be the existence of this page kubernetes.io/fr/docs/tasks/tools/install-minikube/ itself in localized version of docs. In the main website (i.e. English version), this page has been removed (Refer PR #24416). To maintain consistency and synchronization across languages, we should consider removing this 'Install Minikube'  page instead of addressing the broken link(s).
/area localization

/language fr
/retitle [fr] Stale page "Installer Minikube"
We won't track an issue for the general problem that WWW hyperlinks can be broken, or even the hyperlinks on this one website; I don't think an issue that broad is worth tracking.

all translated documentation should be updated

This is an ambition but also does not need an issue.


talk: clicking on a <code> block should copy to clipboard

This is something we've wanted to support for a while:

Should be implemented as a distinct button, rather than applied to the code block as a whole, though.


how to use Sol with lua dll?

what macro to use?
i download lua from the official.
https://luabinaries.sourceforge.net/download.html
i chose Windows x64 DLL and Includes(MingW-w64 6 Built)
got this binary dll

no lib file,  only dll.

sol is a CMake project. So the easiest way to use Lua is to use it via CMake.
Then just create CMakeLists.txt like this:
cmake_minimum_required(VERSION 3.26)
project(Sol2Test LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 20)

add_subdirectory(Lua)
include_directories(Lua/lua-5.4.6/include)

add_subdirectory(sol2)
include_directories(sol2/include)

add_executable(Sol2Test main.cpp)


[workflow] Cache gbs build daily

Add a workflow to update gbs build cache daily

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #549. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://ci.nnstreamer.ai/.


Publish on Homebrew?

It looks great and it would be nice, if this was available on brew.sh as a Cask.

It makes no sense to publish a UI application on Homebrew. It's already available in the mac app store, which is the best place for new users to discover it.

Developers prefer to install software through package managers, this is also great for automation. Homebrew offers GUI applications via --cask flag, but a Homebrew formulae cannot source from the AppStore directly.
I think it would be great to have the ability to configure the CLIENT_ID, TOKENS_URL and TOKENS_REFRESH_URL in the settings menu of SoftPlayer and then at least upload it on GitHub under releases.
Then, someone else could write a Homebrew Formulae that can be pushed to https://github.com/Homebrew/homebrew-cask which will enable SoftPlayer to be installed. Same goes to the SpotifyAPIServer, but it wouldn't be a Cask.


Docker login counterpart in crictl/ctr

I have always updated my containerd.toml file with auth configuration to username and password to pull the required images from private container registry. Is there a way where I can login with my Azure credentials or repository credentials and then pull images. Just like acr login mentioned here  - https://learn.microsoft.com/en-us/azure/container-registry/container-registry-authentication?tabs=azure-cli

crictl is defined in different scope and the kubernetes doesn't read any credentials which docker login creates.
I am closing it since there is nothing we can do in containerd side.


Could guzzle get response redirected by javascript?

Guzzle version: 7
PHP version: 8.15
When I get some url, and it redirect by the javascript with attribute like "top.location", or "refresh"
and I could see the redirect code with 301,
but when I use $res->getStatusCode() it only show 200 from the current url.
I have seen that guzzlehttp wouldn't execute any js, so it means that I couldn't get the correct page?
So that how do I get the final url when this situation occurs? Or someone face the same problem before?

No, we do not evaluate JS.

We do follow redirects by default though. If we see a 301 or 302 status response with a valid Location header, we will follow that, possibly dropping some headers & cookies (for security) along the way, and you only see the final response.


Use CallFnAfter instead of CallOnConditionKeep

In order to get recent failing test cases to pass so we can merge PRs, I changed the periodic test to use CcdCallFnAfter, not CcdCallOnConditionKeep, which means the test will pass regardless of the value of CkWallTimer in the mainchare of periodic.C.

This is fine as a workaround. And ok since its not a critical issue. But I think we should fix the "round number" approximation.
Secondly, we should examine what in the earlier PR triggered this.

Also : I am pasting your *=(Ritvik's)  explanation from slack here:
I took a closer look and this code can test one of 2 things, CcdCallFnAfter and CcdCallOnConditionKeep. if using CcdCallFnAfter, there’s no error regardless of what the first timer is set as, since when i print the timer on each pe, those times are always later than whatever the timer recorded on the main chare (call after works by taking the wall timer and then setting a callback from that point, so there would never be an error). the problem is with CcdCallOnConditionKeep (which the github tests run on). while CcdCallFnAfter requires you to repeatedly set a callback for 1 second after the current wall timer, CcdCallOnConditionKeep calls a specified function (passed in as an argument) every time a condition is met. in periodic.C, that condition is the macro CcdPERIODIC_1s, meaning that every time the wall timer is equal to a whole number (all zeros after the decimal), it’s called. in short, if the initial wall timer is at 0.42, CcdCallFnAfter will finish at 1.45, 2.48, and 3.51 (due to latencies), while CcdCallOnConditionKeep triggers at 1.1, 2.1, and 3.1 (also due to latencies). this means that CcdCallFnAfter can’t fail but CcdCallOnConditionKeep could if the first wall timer is too late.

It would be better to either 1) fix the test to work for CcdCallOnConditionKeep, or 2) remove CcdCallOnConditionKeep from the test entirely. Leaving it commented out and known to be broken is bad and may confuse someone later looking for an example of how CcdCallOnConditionKeep works.

As to this test itself is concerned, I am ok with option 2 that Sam listed. (remove CcdCallOnCondition) and all the associated ifdefs). Its bogus to base it on the "has a bunch of 0's after decimal" to determine close-enough-to-one. And also to assume that startup will be close to 0.
OTOH: whatever caused the the start time to be 0.4+ secs on pe 0 is worth investigating. Maybe open another issue following up on Tom's PR (or examine and fix it now).

I pushed a fix to make this work for both ConditionKeep and CallAfter. To be clear, there are no problems with either of these methods, and they work as expected. The issue is that ConditionKeep triggers a function every second starting from 0 (so 1.0, 2.0, 3.0, etc), instead of starting from the moment ConditionKeep is called, which differs from how CallAfter works. I would argue that the original version of the test doesn't make sense for ConditionKeep, since it assumes that CkWallTimer starts at 0. So I just added an ifdef saying that if we're using ConditionKeep, set the start time to 0, not CkWallTimer.

ok. I like that and is correct to the intent of the test. (Which may be testing for some really rare malady in timers.. but ok).
But we do need to investigate what was changed by Tom's PR separately.

Tom hasn't had a recently merger PR though.


Add release notes actions

At the time that we added the action ohi-release-notes to the release-toolkit repo it made sense because we had not a repo where to have all our automations.
Now that we have, maintaining the release-toolkit repo is harder if you have to maintain also a contrib action that belongs to another team.
This add the action in release-toolkit's contrib here and changes the reusable workflow to use the local action.
This PR does not cover to untangle the action and the reusable workflow that might be hard to read.

Yes. Here: https://github.com/newrelic/release-toolkit/pull/205/commits/50baef8c5b0ef884dad75e83eb7716aad79381b2


CloudEventsTarget spec documentation does not comply with the crd

Documentation:

K8s explaining crd:

Should be added a /path for listen to events?

Good catch! Maybe @odacremolbap can have a look?

Thanks @apenen
The CRD was not updated with the path change.
Will push a fix in the next minutes.


Fixes for Windows clients with Enterprise

This looks good, can I ask why https://github.com/sensu/sensu-puppet/pull/544/commits/85dd5d6fffddda619ccce9121ef0a17f656c5445 was added though? We've gone back and forwards on the default vhost setting. I believe it should have a preceding slash, unless there's a good justification, can you please revert that particular commit?

Ah, sorry, didn't mean to reset the default.   I have put it back to have the slash.

On Oct 23, 2016, at 1:44 AM, Lee Briggs<EMAIL_ADDRESS>wrote:
This looks good, can I ask why 85dd5d6 https://github.com/sensu/sensu-puppet/pull/544/commits/85dd5d6fffddda619ccce9121ef0a17f656c5445 was added though? We've gone back and forwards on the default vhost setting. I believe it should have a preceding slash, unless there's a good justification, can you please revert that particular commit?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/sensu/sensu-puppet/pull/544#issuecomment-255576413, or mute the thread https://github.com/notifications/unsubscribe-auth/AL6_SL5sL3TYFhB_cxNmNYYv4O7o1gWzks5q2x6AgaJpZM4JyTVx.

Awesome, thanks for the contribution!


Changes to allow predicting/relaxing with NVIDIA L4 GPUs

Description

Upgraded CUDA libraries (see https://en.wikipedia.org/wiki/CUDA#GPUs_supported), Python (3.8->3.9) and JAX libs
Modified pipeline to create custom training job components to support specifying machine type/GPU type (see https://cloud.google.com/vertex-ai/docs/pipelines/request-gcp-machine-resources), which is not supported with the default component SELECTOR_CONSTRAINT (see https://cloud.google.com/vertex-ai/docs/pipelines/machine-types)
Modified config.py to replace old component params with new
Modified predict and relax component definitions to incorporate XLA_PYTHON_CLIENT_MEM_FRACTION and TF_FORCE_UNIFIED_MEMORY since specifying on component instances (in the pipeline) as done previously does not carry through to the underlying component container.
Fix bug on predict_relax component, the parameter run_relax expects a boolean.

How has this been tested?
Tested on my internal GCP project, across all kinds of sequences and GPU types T4 and L4. Leaving A100 for another PR, if required.
Checklist

[x] I have commented my code, particularly in hard-to-understand areas
[x] I have successfully run the E2E tests, and have included the links to the pipeline runs below
[x] New and existing unit tests/use cases pass locally with my changes
[x] I have updated any relevant documentation to reflect my changes
[x] I have assigned a reviewer and messaged them

Great pull request and also very timely.
Is it possible to make accelerator_count for Predict & Relax also configurable while the default is "1"? It's quite common to configure multiple GPUs (such as A100) to deal with complex proteins with big residue number.
Thx and cheers.

Great pull request and also very timely.
Is it possible to make accelerator_count for Predict & Relax also configurable while the default is "1"? It's quite common to configure multiple GPUs (such as A100) to deal with complex proteins with big residue number.
Thx and cheers.

Agreed with @JasperW01 .

Great pull request and also very timely.
Is it possible to make accelerator_count for Predict & Relax also configurable while the default is "1"? It's quite common to configure multiple GPUs (such as A100) to deal with complex proteins with big residue number.
Thx and cheers.

Thanks @JasperW01, and great suggestion. Adding this in.

Hi @cjpooley ,
I tested the Pull request with both L4 & A100 for the same protein of https://github.com/GoogleCloudPlatform/vertex-ai-alphafold-inference-pipeline/blob/main/sequences/1S78.fasta. Although it works with L4 but it failed with A100.
With A100, the predict step is successful and the relax predict step started with the problem of "Error loading CUDA module: CUDA_ERROR_UNSUPPORTED_PTX_VERSION (222)", then it gave up and failed after 100 times of retry.
screenshot is below

Hi @cjpooley ,
I tested the Pull request with both L4 & A100 for the same protein of https://github.com/GoogleCloudPlatform/vertex-ai-alphafold-inference-pipeline/blob/main/sequences/1S78.fasta. With L4, it works E2E with a couple of warning messages in the Predict step which I am still digging.
With A100, the Predict step works well with no warning but the Relax step is hit with "Error loading CUDA module: CUDA_ERROR_UNSUPPORTED_PTX_VERSION (222)", then after 100 times of retries it gave up and failed.
screenshot is below

not sure if you have A100 quota handy to replicate it or not.

Thank you for raising this (and testing with the A100.) I will look into this as soon as I can.

HI @cjpooley ,
Just add an clarification to my comment above which has screenshot - all those contents are correct except I missed one point - to make L4 successfully predict 1S78, I had to consolidate the recent changes in the Dockerfile from the main branch of Deepmind AlphaFold github repo into your Dockerfile. Otherwise, predicting 1S78 with L4 fails at the Predict step.
Happy to jump on a call to show you at your convenient time.

This is the Dockerfile I used which can predict 1S78 with L4 successfully but fails with A100 at the Relax step. And as you can see, it's basically on top of your Dockerfile but merged with recent changes from the Deepmina github repo's Dockerfile.
Copyright 2022 Google LLC

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
ARG CUDA=11.8.0
FROM nvidia/cuda:${CUDA}-cudnn8-runtime-ubuntu18.04
FROM directive resets ARGS, so we specify again (the value is retained if
previously set).
ARG CUDA
ARG ALPHAFOLD_VERSION=main
Use bash to support string substitution.
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y
build-essential
cmake
cuda-command-line-tools-$(cut -f1,2 -d- <<< ${CUDA//./-})
git
hmmer
kalign
tzdata
wget
&& rm -rf /var/lib/apt/lists/*
&& apt-get autoremove -y
&& apt-get clean
Compile HHsuite from source.
RUN git clone --branch v3.3.0 https://github.com/soedinglab/hh-suite.git /tmp/hh-suite
&& mkdir /tmp/hh-suite/build
&& pushd /tmp/hh-suite/build
&& cmake -DCMAKE_INSTALL_PREFIX=/opt/hhsuite ..
&& make -j 4 && make install
&& ln -s /opt/hhsuite/bin/* /usr/bin
&& popd
&& rm -rf /tmp/hh-suite
Install Miniconda package manager.
RUN wget -q -P /tmp
https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
&& bash /tmp/Miniconda3-latest-Linux-x86_64.sh -b -p /opt/conda
&& rm /tmp/Miniconda3-latest-Linux-x86_64.sh
Install conda packages.
ENV PATH="/opt/conda/bin:$PATH"
Bug-Fix: Running the conda version 4.13.0, we face an incompatibility issue with python 3.11.
Issue and fix appled as suggested in this github issue: https://github.com/deepmind/alphafold/issues/798
#RUN conda install -qy conda==4.13.0
RUN conda install -qy conda==23.5.2
&& conda install -y -c conda-forge
openmm=7.7.0
pdbfixer
pip
python=3.10
&& conda install -y -c "nvidia/label/cuda-${CUDA}" cuda-toolkit
&& conda clean --all --force-pkgs-dirs --yes
RUN git clone --branch $ALPHAFOLD_VERSION https://github.com/deepmind/alphafold.git /app/alphafold
RUN wget -q -P /app/alphafold/alphafold/common/
https://git.scicore.unibas.ch/schwede/openstructure/-/raw/7102c63615b64735c4941278d92b554ec94415f8/modules/mol/alg/src/stereo_chemical_props.txt
Install pip packages.
RUN pip3 install --upgrade pip --no-cache-dir
&& pip3 install -r /app/alphafold/requirements.txt --no-cache-dir
&& pip3 install --upgrade --no-cache-dir
jax==0.4.13
jaxlib==0.4.13+cuda11.cudnn86
-f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
Add SETUID bit to the ldconfig binary so that non-root users can run it.
RUN chmod u+s /sbin/ldconfig.real
WORKDIR /modules
ADD src/components/alphafold_utils.py .
ENV PYTHONPATH=/app/alphafold:/modules
RUN ldconfig

Hi @cjpooley ,
I tested the Pull request with both L4 & A100 for the same protein of https://github.com/GoogleCloudPlatform/vertex-ai-alphafold-inference-pipeline/blob/main/sequences/1S78.fasta. With L4, it works E2E with a couple of warning messages in the Predict step which I am still digging.
With A100, the Predict step works well with no warning but the Relax step is hit with "Error loading CUDA module: CUDA_ERROR_UNSUPPORTED_PTX_VERSION (222)", then after 100 times of retries it gave up and failed.
screenshot is below

not sure if you have A100 quota handy to replicate it or not.

@JasperW01 we're going to adress compatibility with A100 on another PR.


'+' PropType is defined but prop is never used

I don't think immutable object props are supported.
Eslint: 3.19.0
Eslint-plugin-react: 7.0.1

Can you provide sample code? What happens with eslint-plugin-react v7.1.0?

No change in v7.1.0.
// @flow

import React from 'react';

type Props = {| +a: number, +b: string |};

const MyComp = ({ a, b }: Props) =>
{a} {b}
;

export default MyComp;

What happens if you remove the "exact" pipes? Same error?

This works now with the shared detection, but I think it was originally fixed in #1390.


Renaming URHO3D to U3D?

Since the repository was renamed, do we want to shorten the namespace, macro, and folder names as well?
I vote yes for at least the macro names, I don't have much of an opinion on the rest. Though I think we should keep Urho3D is in the copyright statements in the code/license.

Yes, I have a "rebranding" PR incoming. This is a major BC break, but I think it is important to differentiate the projects, as well as from 1.x to 2.x.

This is a major BC break, but I think it is important to differentiate the projects, as well as from 1.x to 2.x.

Are you certain it is worth it?
People who currently use Urho 1.8- may not want to switch to your project for this breakage alone.
When doing rbfx, we tried to keep as much continuity as possible to help people migrate.
And rbfx intended to be just a personal fork for fun, while U3D aims to be the descendant of Urho3D (afaik).
I have no say in the direction/development of U3D, but I still want to make this statement here.
I am afraid this rebranding may inflict more harm than good.
Benefits are all ephemerical, but the harm is very real: the time wasted on patching code.

I do share that concern. Not renaming can lead to confusion, inconsistency and a whole breed of "it works in Urho 1.9/1.10 but not in U3D". At the same time, renaming causes a big break, requiring cumbersome search and replace, and will break compatibility with old tutorials/documentation.
Everyone has a say, so I would love to see more discussion around this, specially once a PR is open, so the community can choose the path forward.

I'm not certain, but I think it may be possible to do the remaining without breaking backwards compatibility (significantly) by having a compatible header, say Urho3D.h, which still defines the Urho3D namespace with a using namespace U3D; inside, as well as defining the old macros and defined to wrap the new ones.

I've created a new milestone, 1.9, containing all of the important tasks that won't have any big BC break. For 2.0, we can discuss potential BC breaks and how to mitigate them.
@SirNate0 I really like the alias header idea.


Marketplace pictures slideshow

Status
Ready
Related Issues
fixes: https://github.com/demisto/etc/issues/39373
Description
Add three banners in the marketplace page in xsoar.pan.dev,
under the filter bar as a slideshow, each link to other site.
Screenshots

TODO: check if we need remove scroller near the pictures.


[Bug] Operator kills Galera bootstrap pod even if it is not fully initialized

Documentation

[x] I acknowledge that I have read the relevant documentation.

Describe the bug
In some environments MariaDB fails to bootstrap with following errors:
2024-02-27 15:09:44 2 [Note] WSREP: Synchronized with group, ready for connections
2024-02-27 15:09:44 2 [Note] WSREP: wsrep_notify_cmd is not defined, skipping notification.
2024-02-27 15:09:53 7 [Warning] Access denied for user 'root'@'localhost' (using password: YES)
2024-02-27 15:09:53 8 [Warning] Access denied for user 'root'@'localhost' (using password: YES)
....

The access denied logs are from failing liveness probe:
  Warning  Unhealthy  2m55s (x5 over 4m55s)   kubelet            Liveness probe failed: HTTP probe failed with statuscode: 500

It is caused because it may happen that operator deletes mariadb bootstrap pod before entrypoint initialization completes.
$ k logs  mariadb-galera-0  -f
Defaulted container "mariadb" out of: mariadb, agent, init (init)
2024-02-27 15:08:39+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:<IP_ADDRESS>+maria~ubu2004 started.
2024-02-27 15:08:39+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2024-02-27 15:08:39+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:<IP_ADDRESS>+maria~ubu2004 started.
2024-02-27 15:08:39+00:00 [Note] [Entrypoint]: Initializing database files
# killed

Pod is killed after graceful timeout, which by default is set to 30s, which may not be enough to finish initialization process.
Expected behaviour
MariaDB installation completes without error.
W/A
Increase terminationGracePeriodSeconds of the mariadb pod, which currently is not possible (could be added to MariaDB.Spec and used during mariadb pod template build).
Steps to reproduce the bug
Reproduced locally with KIND cluster.

Prepare mariadb CR with cpu resource limits

  resources:
    limits:
      cpu: 15m

Install MariaDB CR

Debug information
Relevant code snippet:
# pkg/controller/galera/controller.go
func (r GaleraReconciler) initBootstrapPod(ctx context.Context, mariadb *mariadbv1alpha1.MariaDB, logger logr.Logger) (ctrl.Result, error) {
...
	logger.V(1).Info("Restarting bootstrap Pod")

	if err := r.Delete(ctx, &bootstrapPod); err != nil {
		return ctrl.Result{}, fmt.Errorf("error restarting bootstrap Pod: %v", err)
	}

Environment details:

Kubernetes version: v1.24.4, v1.28.0
Kubernetes distribution: WRCP, KIND
mariadb-operator version: 0.0.26 (d85a5be1d4624c39a7501ea24eff8e66c8119525) - this version is not released yet
Install method: helm
Install flavor: custom

Hey @djakobczak1 ! Thanks for reporting this and also for the detailed analysis.
Currently, the operator waits until the first Pod initializeds the /var/lib/mysql directory, but it might not be enough. What do you think it would be the best criteria to consider a MariaDB Pod initialized? I'm thinking that we could instead perform a SELECT 1; with the root credentials to determine this. What are your thoughts about this?

Pod is killed after graceful timeout, which by default is set to 30s

I believe the Pod is being killed by the kubelet, as the liveness probe is failing. During the cluster bootstrap, the operator doesn't kill the Pod until is marked as initialized. This timeouts only apply to the recovery process:

https://github.com/mariadb-operator/mariadb-operator/blob/main/docs/API_REFERENCE.md#galerarecovery

I'm also thinking about provisioning the first PVC and using a Kubernetes Job with the MariaDB image to perform the initialization, the same way the first Pod currently. This might require extra adaptations to integrate with the entrypoint, so probably something to tackle in further releases.
Thanks again!

Hi @mmontes11,

I believe the Pod is being killed by the kubelet, as the liveness probe is failing. During the cluster bootstrap, the operator doesn't kill the Pod until the agent reports that it is initialized.

There are 2 situation when bootstrap pod can be killed, one is when operator gets information from agent that initialization is completed, the second one is when kubelet kills the pod due to specified number of failed liveness probes. I was referring to the first situation.
Maybe I was not precise enough or I did not get it right, but I thought that following actions happened in described problem:

Bootstrap server starts
Entrypoint of bootstrap server starts temporary server
/var/lib/mysql is initialized
Agent side-pod reports that DB is initialized (files were created in /var/lib/mysql, but it does mean that all initialization steps were finished)
Operator requests bootstrap pod deletion <- here bootstrap server has by default 30s, which is time for graceful shutdown, to complete initialization, otherwise step 7 will happen
Bootstrap server is restarted
7.1 if server was not fully initialized liveness probe fails (loop)
7.2. Bootstrap pod enters CrashLoopBack

Regarding proposed solution (i.e. making sure that we can login to db with changed credentials before restarting the pod), I think it should be fine, because login with changed root password will be possible after restart of temporary server, so user custom scripts placed in /docker-entrypoint-initdb.d/ should not be affected as well.

One thing we could do is returning 200 OK in the agent /liveness endpoint before the first Pod has been initialized.

Maybe it is worth to think about startupProbe? It sounds like startupProbe should be used for this kind of situations, when we are waiting for initialization (and with it we can still allow user to configure it, so depending on environment user could adjust for how long it is acceptable to bootstrap the cluster).
Using Job has some other advantages e.g. it will help with db migration, which should be done before any other server join the galera cluster (to limit the time needed for certification process).

Hey @djakobczak1 !
You get the process exactly right, again great analysis!

Maybe it is worth to think about startupProbe?

This is a good one. It doesn't make sense to start liveness and readiness probes if there initialization hasn't finished. Much better and less risky than adding a condition to the liveness probe.

Using Job has some other advantages

Yes, apart from what you just mentioned, the advantages I see is that once the init Job is finished, we can just create the StatefulSet without having to do any sort of coordination between controller, init and agent nor restarting Pods during the bootstrap. Which implies that it will be easier to maintain and reduces the risk of race conditions during the bootstrap.
However I also see downsides:

We need to pre-provision the first PVC to mount it in the Job. Currently we rely on the StatefulSet for doing this.
The Job will have a custom entrypoint that, using the mariadb image, it will:

Source the default entrypoint
Call the docker_setup_env and docker_mariadb_init functions

These functions are only available in certain image versions: the ones available in this repo. This also includes the current enterprise images, they have the same entrypoint.

Entrypoint script for MariaDB Server 1:10.6.1

10.6 should be compatible I believe. Is this version the one you are intending to use?
In conclusion, I think I will give the init Job a try. If I find any other limitation along the way, checking the root credentials in the startupProbe, as you suggested, should also do it.

These functions are only available in certain image versions: the ones available in this repo. This also includes the current enterprise images, they have the same entrypoint.

I think currently in the mdb.spec.image description there is a note that only official images are supported so making this assumption does not sound as regression. However, if in the future you would like to support e.g. bitnami mariadb images (this could be difficult) then this approach may require deeper analysis.
To sum this up, we are interested in support of official mariadb images (10.6+), so from my side, both solutions should be fine,

Hey @djakobczak1 !
Initialization via a Job has been supported in the following PR: https://github.com/mariadb-operator/mariadb-operator/pull/423
This will be released in v0.0.26


frameless title bar leaves big white lines on the other screen when maximized (windows 11)

snapping the app to maximize or clicking the maximize button leaves a white border on the other screen (dual monitor) when using a frameless title bar, no issues if it's disabled. white border doesn't appear if it's snapped on half the screen or quarter, only happens in maximize. also doesn't appear on nvuitogglefullscreen. hopefully could be fixed soon, this is the only customizable title bar nvim gui i could find, and i've been loving it, thank you so much for your hard work.

I don't have this issue on my machine. But text size is different though.

what os are you onn and what version of nvui are you on?

Windows 11, newest nvui.

huh, weird, is it the newest nvui release or the newest main artifact? could it be that it's just my config? thank you for your reply btw

the white border issue fixes itself if i change the scale of the monitor, but each time i opened a new instance it shows up again, i have no idea what's happening

so uh... like the #133 config size issue... not using showMaximized before the title bar initializes fixes the issue


update cpu requests

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 63.15%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1981

Relevant Lines:
3137

💛  - Coveralls


set azure provider err

set codegpt provider azure is bad o.O
Error: error, status code: 401, status: 401 Unauthorized, message: Access denied due to invalid subscription key or wrong API endpoint. Make sure to provide a valid key for an active subscription and use a correct regional API endpoint for your resource.

Error: error, status code: 401, status: 401 Unauthorized, message: Access denied due to invalid subscription key or wrong API endpoint. Make sure to provide a valid key for an active subscription and use a correct regional API endpoint for your resource.

I believe this error message is very clear. Perhaps you could try again? I personally have verified it and there are no issues.


spring-boot - new project command

should have category, its listed as uncategorized.

Also upgrade to SB 1.4.1 and use it as default


Save operation breaks because code is never executed

My save operations weren't working. It was simply blocking and never returning anything.
In my case, I create a custom id (UUID), so this code block is executed.
With this change, it works. Tested in my app and everything works :D

:+1: This should also be fixed in the new swift-2.0 branch but I'll merge this into master for completeness :).


[Question] Is it possible extending the ray tracing or variable rate shading to multi-GPU setup?

Hello!
from the sample > Desktop folder, D3D12Raytracing, and D3D12VariableRateShading, it it possible extending the code repository to MultiGPUs computer configuration?
Does DX12/DXR (raytracing) actually support multiGPU? By multiGPUs I mean each gpu will have more than 1 monitors (2/3 monitors) and they will real time render a single scene. Something like CAVE setup.

I have been searching for DXR linked multiGPU and I think it is definitely possible but currently, the only sample available is for Vulkan (https://github.com/NVIDIA/Q2RTX) based on this concept (https://developer.nvidia.com/blog/rendering-perfect-reflections-and-refractions-in-path-traced-games/). So, I think it is very feasible to port this to DX12. Still, I do hope that we get a multi-gpu raytracing DirectX sample in this repo.


Publish 2.8.1; 2.8.0 has serious exit code flaw

This could cause severe problems in CI: https://github.com/technomancy/leiningen/issues/2342
Would be great if we could get 2.8.1 published quickly.

@technomancy Thanks for the heads up! I'll get the process started.

Updated in b4e548bbaab978eaa8e0f4b31705c43526202d3c. Will open a PR to have Docker Hub update it now.

Thanks for the quick response.

official-images PR merged. Should appear on the hub shortly.


Unable to highlight input on Firefox

When using firefox, i am unable to highlight any text entered into a summernote field. If i try to highlight it will highlight for a fraction of a second then will dehighlight immediately

Thank you for using summernote.
But I think this issue should go to https://github.com/summernote/summernote/issues, not here.


manifest: PSA arch tests with increased timeout

This brings a change in the PSA arch tests where
we increase the timeout to 90 seconds for Nordic
devices. Since we run RSA key generation tests
this is necessary.
Signed-off-by: Georgios Vasilakis<EMAIL_ADDRESS>

The following west manifest projects have been modified in this Pull Request:

Name
Old Revision
New Revision
Diff

psa-arch-tests
https://github.com/zephyrproject-rtos/psa-arch-tests/commit/a81f9da287569f169d60026916952641b233faa8 (master)
https://github.com/zephyrproject-rtos/psa-arch-tests/pull/5
zephyrproject-rtos/psa-arch-tests#5/files

Note: This message is automatically posted and updated by the Manifest GitHub Action.

Closing since it is already merged by the upmerge.


Is Operation state with empty actions array valid?

Specification says that the actions array of the Operation state is required. Schema also lists it as a required property.
However, there seems to be no constraint on the size of the array, so technically an Operation state with an empty actions array is valid. This also validates with the Java SDK. However, with the Go SDK the kubebuilder tag and also the Go validator tag say that the minimum size of the actions array is 1, so an empty array is refused.
So is the Operation state with an empty actions array valid?
What would you like to be added:
Clarification on the size of the actions array in the schema and in the specification document.
Why is this needed:
To not have discrepancies among different SDKs.
Adding @ricardozanini @spolti to the loop too.

there seems to be no constraint on the size of the array, so technically an Operation state with an empty actions array is valid

yep that is true, the property itself is required but can be empty array.

Clarification on the size of the actions array in the schema and in the specification document.

Imho its pretty clear from spec and schema that it can be empty array?

To not have discrepancies among different SDKs.

Yeah sdk should allow empty array

@tsurdilo so we can fix the SDK Go. But in what context we can have an Operation State with an empty actions array?

yep that is true, the property itself is required but can be empty array.

But does that make sense? Shouldn't actions require at least one action? Otherwise, what's the point of it?

We should agree on:

Required array fields are ok to be empty
When empty, tooling/implementations could warn based on the context
Do not change the schemas

If we agree, we do nothing since the schema already reflects that (it's required, but an empty array is valid). It was a decision on SDK Go to fail on an empty array that we should revert and respect the schema instead. cc @serverlessworkflow/sdk-developers

This was fixed by serverlessworkflow/sdk-go#183 which corrected the kubebuilder tag to allow an empty array.
cc @ricardozanini


activity_id -- add RFMIP for GFDL-ESM4

We, at GFDL, would like to request the addition of the activity RFMIP to GFDL-ESM4.
(Note:  Consent received from David Paynter, RFMIP lead at GFDL)
Many thanks,

@aradhakrishnanGFDL that tweak is now complete, take a peek at CMIP6_source_id.html and let me know of any additional changes required?

Thanks! Looks good.
On Thu, Oct 17, 2019 at 4:21 PM Paul J. Durack<EMAIL_ADDRESS>wrote:

@aradhakrishnanGFDL https://github.com/aradhakrishnanGFDL that tweak is
now complete, take a peek at CMIP6_source_id.html
https://wcrp-cmip.github.io/CMIP6_CVs/docs/CMIP6_source_id.html and let
me know of any additional changes required?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/WCRP-CMIP/CMIP6_CVs/issues/806?email_source=notifications&email_token=AGI5N2T5XWIAKQJEM5DHUHLQPDCK7A5CNFSM4JB27ZMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBRMW3I#issuecomment-543345517,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGI5N2VXRCVSS6XBINFAKC3QPDCK7ANCNFSM4JB27ZMA
.

--
Aparna Radhakrishnan
Princeton University/NOAA GFDL
Cell:<PHONE_NUMBER>


Update run dependency docs and add link to automated docker solution

README.md contains a link for getting started with PLV8 on windows, but nothing for non-windows systems. I wrote an automated Docker solution to get testing up and running with one script call, and wanted to share it with other prospective contributors.
If it would be more useful to just add that container system to this repository, I'm glad to do that.

@eouw0o83hf If you want to use a newer version of PLV8, or you want to use Postgres 10.6 or 11.1, we have images available here you could use in your Dockerfile.


Bare Metal Tectonic Installer stuck on power on

Issue Report Template
Tectonic Version
latest
Environment
Bare Metal
What hardware/cloud provider/hypervisor is being used with Tectonic?
BareMetal
Expected Behavior
Installer should pick up provisioned controller and worker nodes
Actual Behavior
Controller nodes and worker nodes have been provisioned via ipxe however, my installer crashed and after relaunching the installer I cannot get it to detect the controller and worker nodes.
Does the windows installer (running firefox) use dns queries to detect the nodes and then allow the installer to continue?
Do I need to wipe the bootcfg service and re-run the tectonics installer from scratch?
2 of my worker nodes show as localhost and not the configured hostname (Could this be a result of multiple NIC's in the machine and ipxe booting off of an unexpected mac address?) The controller node and one other work node provisions it's hostname perfectly.
Any help would be greatly appreciated.
Thanks,
Mike

That means it dident provisioned the worker nodes properly - with my cluster i run ipxe using the coreos dnsmask container - when that happens usually I just relaunch the container and pxe boot the nodes
again, if you relaunch the installer on the browser it should ask you if you want to pick up where you left off say yes and hopefully it should provision them - it does take at least two reboots of the nodes one to install coreos and one to provision it

I have solevd these issues.

Ditch bootcfg clone matchbox.
Follow the lead here
-Feed those generated keys to tectonic installer
Make sure your DNS is working properly, dont use .local
Your nodes will discover now.

@pompomJuice
You do not need to fork matchbox to change the Matchbox TLS certificate generation script (examples/etc/matchbox/cert-gen). It accepts a SAN environment variable.
 export SAN=DNS.1:matchbox.example.com,IP.1:<IP_ADDRESS>
$ ./cert-gen

Do not take the matchbox k8s-certgen script and use it for Tectonic. Its for creating static Kubernetes TLS assets. Tectonic creates "self-hosted" clusters via bootkube which has different v3 extensions. Your best bet is doing nothing and leaving the "Generate TLS certificates" button checked in the installer.
@miknano

Do I need to wipe the bootcfg service and re-run the tectonics installer from scratch?

Not usually. You can PXE boot the machines again to do a clean install. If you go through the installer again, it will override the old machine profiles (named by MAC address) so you can go through again if you input the wrong information in the graphical installer.

Does the windows installer (running firefox) use dns queries to detect the nodes and then allow the installer to continue?

Yes, if the DNS names give for nodes don't resolve or the expected services aren't running on those nodes, you won't be allowed to proceed, by design. In another tab, you can check /cluster/status to see the raw checks taking place.

@dghubble I am not saying that the autogen is a bad idea. I am saying that it does not work. I had to use k8-certgen or it would not work. Multiple people have now reported the same issue. Because it's the same bug. Your other support person mentioned something about the aliases used in tectonic cert gen is broken. Ask around. That is what led me to my solution.

Made some progress, extended my DHCP leases to ensure the dns records stay accurate. Attached image shows that the controller is now showing up.

Please note that in the very beginning I used the tectonic cert gen script so I am all set on that front.
As for the nodes showing up, I have the dns record tectonic.mydomain.com round robin to all 3 nodes. I also have each worker hostname as a dns record. Yet for example tectonic2.mydomain.com is not picked up. What is the best way to check the services on the one worker node that "appears" to be provisioned correctly? Going a step further from just opening another tab to check /cluster/status.
I'll triple check my mac addresses and pxe boot one more time.
Thanks @dghubble @pompomJuice @Opswatch for the info.

@miknano If you ssh to your worker nodes and do a journalctl -f you will notice just one error after a while. kublet cannot boostrap because https://mycontroller.mydomain.com/api has a TLS jam.
To fix it you need to generate other certs until they can fix the problem.

@pompomJuice @dghubble Is it confirmed that the "Generate TLS Certificates" doesn't work for the bare metal installer?

@miknano I think so. @dghubble does not.

We test every release, "Generate TLS certificates" works just fine. Just tested afresh and all is working well on bare-metal. Moreover, the certificates have zero bearing on whether nodes are considered ready at the power on screen. The installer simply checks if a node is available at the expected DNS name, whether etcd is running on the controller (port 2379), and kubelet is running on all nodes (10255).
@miknano are you able to SSH to the<EMAIL_ADDRESS>?
If you're curious about certificates, download the assets.zip and inspect the apiserver.crt. You'll find the subject alt names correspond to the . The ca.crt and kubelet.crt certificates should not have such SANs.
`openssl x509 -noout -text -in apiserver.crt`

...
X509v3 extensions:
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment
            X509v3 Extended Key Usage:
                TLS Web Server Authentication, TLS Web Client Authentication
            X509v3 Subject Alternative Name:
                DNS:cluster.example.com, DNS:kubernetes, DNS:kubernetes.default, DNS:kubernetes.default.svc, DNS:kubernetes.default.svc.cluster.local, IP Address:<IP_ADDRESS>

Notice this corresponds to the controller DNS name provided.

@pompomJuice Please stop telling users to make their own certificates and manually distribute them. If you believe the TLS certs created by the installer are invalid for your situation, please file a separate issue and show the alt names and what you expected based on what you typed in the installer.

Here are the results from /cluster/status
{"etcd":[{"instance":"controller1.mydomain.com","message":"","ready":true}],"kubelet":{"controllers":[{"instance":"controller1.mydomain.com","message":"","ready":true}],"workers":[{"instance":"tectonic1.mydomain.com","message":"Get http://tectonic1.mydomain.com:10255/healthz: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)","ready":false},{"instance":"tectonic2.mydomain.com","message":"Get http://tectonic2.mydomain.com:10255/healthz: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)","ready":false},{"instance":"tectonic3.mydomain.com","message":"Get http://tectonic3.mydomain.com:10255/healthz: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)","ready":false}]},"tectonicConsole":{"instance":"tectonic.mydomain.com","message":"Get https://tectonic.mydomain.com/health: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)","ready":false}}
@dghubble I cannot ssh into tectonic2.mydomain.com once a vm is provisioned is ping enabled?
Thanks,
Mike

You should be able to ping the machine. If not, investigate networking problems.
Then, assuming you correctly entered your SSH public key in the Tectonic installer, you should be able to ssh to the machine as user "core" (as usual on CoreOS).
If that's not working, provisioning might not be occurring. We'll need more info. That would be odd since the controller coming up indicates the PXE infrastructure and provisioning were working. Can you get a console on the box (SOL, monitor, whatever you usually do) and PXE boot the machine again. On the provisioner node, you can inspect the logs as well.
journalctl -f -u dnsmasq
journalctl -f -u matchbox  # or bootcfg (older name)

This can help determine if the issue is in DHCP, PXE, kernel/initrd loading, or boot. matchbox will have logs indicating the machine matched against a profile under normal conditions. See if the box reaches a CoreOS login prompt.

It ended up being the due to the fact that I had dual NIC's both having default gateways being assigned from DHCP. Only the 10 gig interfaces would respond to ping and ssh. I now have Tectonic2.eventzero.com show online and bootstrapped. I can ssh into the other 2 nodes, however even after pxe booting them again they are not picking up there initial configuration. @dghubble I will follow your suggestions above and get back to you with some logs.
Thanks

Oh nice. On PXE boot they'll power on and install CoreOS to disk (you can SSH in, but nothing will turn greeen until systemctl status installer completes) and reboot themselves. Then they'll be setup and the installer should allow you to proceed. Usually this just happens quietly behind the scenes.

All worker nodes are provisioned, formatting the hard drives seemed to do the trick. I am now stuck on the connect nodes page.
It seems there is now an issue with the kube-ca certs that were generated.
Here is my output from /cluster/status
{"etcd":[{"instance":"controller1.eventzero.com","message":"","ready":true}],"kubelet":{"controllers":[{"instance":"controller1.eventzero.com","message":"","ready":true}],"workers":[{"instance":"tectonic1.eventzero.com","message":"","ready":true},{"instance":"tectonic2.eventzero.com","message":"","ready":true},{"instance":"tectonic3.eventzero.com","message":"","ready":true}]},"tectonicConsole":{"instance":"tectonic.eventzero.com","message":"Get https://tectonic.eventzero.com/health: dial tcp <IP_ADDRESS>:443: connectex: No connection could be made because the target machine actively refused it.","ready":false}}
Here is part of the logs from one of the worker nodes.
tadata.name%3Dtectonic3.mydomain.com&resourceVersion=0: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kube-ca")
rsion=0: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kube-ca")
/nodes: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kube-ca")
trying to verify candidate authority certificate "kube-ca")' (may retry after sleeping)
tor=spec.nodeName%3Dtectonic3.mydomain.com&resourceVersion=0: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kube-ca")
rsion=0: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kube-ca")
tor=spec.nodeName%3Dtectonic3.mydomain.com&resourceVersion=0: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kube-ca")
tadata.name%3Dtectonic3.mydomain.com&resourceVersion=0: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kube-ca")
tadata.name%3Dtectonic3.mydomain.com&resourceVersion=0: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kube-ca")
rsion=0: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kube-ca")
tor=spec.nodeName%3Dtectonic3.mydomain.com&resourceVersion=0: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kube-ca")
rsion=0: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kube-ca")
tadata.name%3Dtectonic3.mydomain.com&resourceVersion=0: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kube-ca")
tor=spec.nodeName%3Dtectonic3.mydomain.com&resourceVersion=0: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kube-ca")
tor=spec.nodeName%3Dtectonic3.mydomain.com&resourceVersion=0: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kube-ca")
tadata.name%3Dtectonic3.mydomain.com&resourceVersion=0: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kube-ca")
rsion=0: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kube-ca")
@dghubble Should I attempt new certs?
@pompomJuice Is this what you were referring to?
Thanks you both again for the help.

Here are some logs from the controller.
For now I will continue to look into the certs loaded on each node. Any thoughts would be greatly appreciated.

That is exacly the same error I got. @dghubble should explain to us what
version of the installer he is using.
On 16 Feb 2017 07:47, "miknano"<EMAIL_ADDRESS>wrote:
All worker nodes are provisioned, formatting the hard drives seemed to do
the trick. I am now stuck on the connect nodes page.
It seems there is now an issue with the kube-ca certs that were generated.
Here is my output from /cluster/status
{"etcd":[{"instance":"controller1.eventzero.com","message":"
","ready":true}],"kubelet":{"controllers":[{"instance":"con
troller1.eventzero.com","message":"","ready":true}],"workers":[{"instance":"
tectonic1.eventzero.com","message":"","ready":true},{"instance":"te
ctonic2.eventzero.com","message":"","ready":true},{"instance":"tectonic3.
eventzero.com","message":"","ready":true}]},"tectonicConsole":{"instance":"
tectonic.eventzero.com","message":"Get https://tectonic.eventzero.com/health:
dial tcp <IP_ADDRESS>:443: connectex: No connection could be made because
the target machine actively refused it.","ready":false}}
Here is part of the logs from one of the worker nodes.
tadata.name%3Dtectonic3.mydomain.com&resourceVersion=0: x509: certificate
signed by unknown authority (possibly because of "crypto/rsa: verification
error" while trying to verify candidate authority certificate "kube-ca")
rsion=0: x509: certificate signed by unknown authority (possibly because of
"crypto/rsa: verification error" while trying to verify candidate authority
certificate "kube-ca")
/nodes: x509: certificate signed by unknown authority (possibly because of
"crypto/rsa: verification error" while trying to verify candidate authority
certificate "kube-ca")
trying to verify candidate authority certificate "kube-ca")' (may retry
after sleeping)
tor=spec.nodeName%3Dtectonic3.mydomain.com&resourceVersion=0: x509:
certificate signed by unknown authority (possibly because of "crypto/rsa:
verification error" while trying to verify candidate authority certificate
"kube-ca")
rsion=0: x509: certificate signed by unknown authority (possibly because of
"crypto/rsa: verification error" while trying to verify candidate authority
certificate "kube-ca")
tor=spec.nodeName%3Dtectonic3.mydomain.com&resourceVersion=0: x509:
certificate signed by unknown authority (possibly because of "crypto/rsa:
verification error" while trying to verify candidate authority certificate
"kube-ca")
tadata.name%3Dtectonic3.mydomain.com&resourceVersion=0: x509: certificate
signed by unknown authority (possibly because of "crypto/rsa: verification
error" while trying to verify candidate authority certificate "kube-ca")
tadata.name%3Dtectonic3.mydomain.com&resourceVersion=0: x509: certificate
signed by unknown authority (possibly because of "crypto/rsa: verification
error" while trying to verify candidate authority certificate "kube-ca")
rsion=0: x509: certificate signed by unknown authority (possibly because of
"crypto/rsa: verification error" while trying to verify candidate authority
certificate "kube-ca")
tor=spec.nodeName%3Dtectonic3.mydomain.com&resourceVersion=0: x509:
certificate signed by unknown authority (possibly because of "crypto/rsa:
verification error" while trying to verify candidate authority certificate
"kube-ca")
rsion=0: x509: certificate signed by unknown authority (possibly because of
"crypto/rsa: verification error" while trying to verify candidate authority
certificate "kube-ca")
tadata.name%3Dtectonic3.mydomain.com&resourceVersion=0: x509: certificate
signed by unknown authority (possibly because of "crypto/rsa: verification
error" while trying to verify candidate authority certificate "kube-ca")
tor=spec.nodeName%3Dtectonic3.mydomain.com&resourceVersion=0: x509:
certificate signed by unknown authority (possibly because of "crypto/rsa:
verification error" while trying to verify candidate authority certificate
"kube-ca")
tor=spec.nodeName%3Dtectonic3.mydomain.com&resourceVersion=0: x509:
certificate signed by unknown authority (possibly because of "crypto/rsa:
verification error" while trying to verify candidate authority certificate
"kube-ca")
tadata.name%3Dtectonic3.mydomain.com&resourceVersion=0: x509: certificate
signed by unknown authority (possibly because of "crypto/rsa: verification
error" while trying to verify candidate authority certificate "kube-ca")
rsion=0: x509: certificate signed by unknown authority (possibly because of
"crypto/rsa: verification error" while trying to verify candidate authority
certificate "kube-ca")
@dghubble https://github.com/dghubble Should I attempt new certs?
@pompomJuice https://github.com/pompomJuice Is this what you were
referring to?
Thanks you both again for the help.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/coreos/tectonic-forum/issues/50#issuecomment-280237579,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABuzFzg0UplJpuCArzk9eHksybRjPzi_ks5rc-L-gaJpZM4MBYJV
.

@pompomJuice  Thanks for confirming. After you created your certs, which folder did you distribute the certs to for all the nodes?
/etc/ssl/certs? If make my own I will just use digicert and their root certs look to be preloaded on coreos.
@dghubble My apicert looks good and contains controllers.mydomain.com  Possibly the I just need to manually place the CA cert on each node? Which directory would I place that in?
Thanks,
Mike

@miknano I have no idea where to place them post-matchbox.
I just restart the entire process and fill in the certs into the installer's manual option.
Trying anything else without knowing how it works is potentially impossible.

@pompomJuice  Thanks again for the help.
@dghubble  I am 100% certain that the issue is the generated ca.crt is not being uploaded to the /etc/ssl/certs/ca-certificates.crt which is sym linked to the read-only /usr/share/ca-certificates/ca-certificates.crt
I followed the following directions to add a trusted ca for coreos.

Copy the PEM-encoded certificate authority file (usually with a .pem file name extension) to /etc/ssl/certs

Run the update-ca-certificates script to update the system bundle of Certificate Authorities. All programs running on the system will now trust the added CA.

I ran the update-ca-certificates service however it failed. :-( Any advice?
Thanks,
Mike

@miknano Where did you get the certificates?

You can check the certificates in use. They're self-signed so that message is fine.
$ cd /opt/bootkube/assets/tls  # controller node
$ openssl verify -CAfile kubelet.crt ca.crt
ca.crt: O = kube-aws, CN = kube-ca
error 18 at 0 depth lookup:self signed certificate
OK
$ openssl verify -CAfile apiserver.crt ca.crt
ca.crt: O = kube-aws, CN = kube-ca
error 18 at 0 depth lookup:self signed certificate
OK

The copy of these that is actually used is in the assets.zip under manifests/kube-apiserver-secret.yaml and you can verify the same.
If you've gone through the installer multiple times but left the controller in place, perhaps certs from different runs were used. You might extract the /etc/kubernetes/kubeconfig base64 certs and verify btw worker and controller if you're really suspicious. Or just be sure they PXE'd from the same run through of the installer.
The /etc/kubernetes/cni/net.d error may be related to a shift from flannel being run on hosts to being created by bootkube bootstrapping as a pod. This would be present in 1.5.2-tectonic.1 and bootkube v0.3.2 and up. To be absolutely clear, I'm not aware of any bug there. Just that, CNI wasn't used before that point in time and flannel was run by systemd before.

@dghubble but it does not work. The nodes complain because of: 0: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kube-ca")
Sure that can be caused by /etc/ssl/certs not having the parent signer available.

@dghubble

Moreover, the certificates have zero bearing on whether nodes are considered ready at the power on screen.

The installer simply checks if a node is available at the expected DNS name, whether etcd is running on the controller (port 2379), and kubelet is running on all nodes (10255).

That is simply wrong man. You do realize that for kubelet to boostrap on all nodes they need to authenticate with the controller using the certificates?
Maybe we should talk to one of the engineers please.

This is where my installer get's stuck.
The left hand side is the controller, the right hand side is the node.
Notice how it continuously spams Get https://controllers.ctlab.com:443/api/v1/pods?fieldSelector=spec.nodeName%3Dnode2.ctlab.com&resourceVersion=0: x509: certificate signed by unknown authority
If that is not a certificate error, I don't know anymore.

Like I said, the certificates have no bearing on whether nodes are considered ready at the Power On screen, which was where the OP was stuck. You're talking about the Connect Nodes screen. The first stage simply runs the kubelet on host, there is no apiserver. The next stage starts bootkube to bootstrap the control plane.
You may be referring to a message in the UI that said bootstrapping was happening, but the message will be corrected in the next release. If you have further questions about how self-hosted clusters work, you can consult the architecture diagram. https://github.com/kubernetes/community/pull/206

@pompomJuice as a sanity check:
Your kubelet is going to trust certificates signed by the CA which is provided in your kubeconfig as certificate-authority-data.
The bootkube apiserver is going to use the certificate provided in $ASSET_DIR/tls/apiserver.crt.
You could manually verify the process which seems to be failing in your logs (kubelet contacting the bootkube apiserver) by:

base64 decode the CA provided in the kubelet kubeconfig: certificate-authority-data.
openssl verify -CAfile $DECODED_CA $ASSET_DIR/tls/apiserver.crt

Ideally you should see:
apiserver.crt: OK
If not you might have a mis-match between your assets.

@miknano The kubelet's chain of trust (to the api-server) does not rely on host-level CA certs. It will trust the ca provided in the kubeconfig (certificate-authority-data)

Also @pompomJuice, may go without saying, but if that kubeconfig was posted with real values, I wouldn't ever use them (contains private key material), and would likely re-generate a new CA as well, as it's not super easy to revoke trust of just that one cert.

@aaronlevy `core@controllers ~ $ openssl verify -CAfile api.crt /opt/bootkube/assets/tls/apiserver.crt
/opt/bootkube/assets/tls/apiserver.crt: CN = kube-apiserver
error 20 at 0 depth lookup:unable to get local issuer certificate
It's the same error that the logs have been showing.
`

oh the joys:
Feb 17 08:11:55 node2.ctlab.com kubelet-wrapper[15348]: W0217 08:11:55.476876   15348 server.go:387] New kubeClient from clientConfig error: specifying a root certificates file with the insecure flag is not allowed
Feb 17 08:11:55 node2.ctlab.com kubelet-wrapper[15348]: Error: failed to run Kubelet: invalid kubeconfig: specifying a root certificates file with the insecure flag is not allowed
Feb 17 08:11:55 node2.ctlab.com kubelet-wrapper[15348]: failed to run Kubelet: invalid kubeconfig: specifying a root certificates file with the insecure flag is not allowed

This system just wont work

@pompomJuice another sanity check, that the assets being generated (in isolation) are valid:
 openssl verify -CAfile /opt/bootkube/assets/tls/ca.crt /opt/bootkube/assets/tls/apiserver.crt

If the assets which are generated as a single unit do not validate, @pompomJuice do you have reproduction steps to get to this stage?

@aaronlevy
I am running 1325.0 now and that fixed all these issues. It was released yesterday.

Sorry for the delay. My issue is resolved and my Tectonics infrastructure is running well.
There was a mismatch between the base64 encoded certificate-authority-data and the apiserver.crt  The  ca, api, etc certs that I uploaded during the tectonics setup were generated using the script in /bootcfg. After uploading the certs the next page in the tectonics installed ask whether you would like to Tectonics to automatically generate a CA cert or use your own. If you chose the automatic option it will cause a mismatch in your assets. I had to select use my own CA cert and upload the same CA uploaded in the previous page. I am with @pompomJuice on this. There is no way the automatically generated CA cert option works, the installer should grab the CA cert uploaded on the previous step of the installer.
Thanks everyone for the assistance and hopefully this helps anyone else facing the same confusion. Besides this small understand I am very impressed with Tectonics so far, thanks to the CoreOS team for all the hard work!

@miknano It's been fixed in the latest alpha drop of tectonic.

Hey @miknano, thanks for reporting back. The first set of certs you upload are exclusively for authenticating to matchbox (FKA bootcfg). The second page then provides configuration for the k8s cluster certs. These are different certificate chains, and sounds like we need to better document the difference to avoid this confusion in the future. I'll loop in our docs team (cc @joshix) to clarify this. We're looking into the "a mismatch in your assets" issue and will report back here if we find anything more than a docs clarification. cc @dghubble

Hi,
I setup the matchbox  in provisioner node, masternode as controller(using this link "http://www.currah.ca/tech/2015/10/08/kubernetes-coreos.html" and "http://git.io/vswiF") and coreosNode1 as worker node(using this link "http://git.io/vswMW"). While installing Tectonic console, there is a problem in the final Boot cluster poweron step(attached sreen1 image).

I checked the master node and found out kubelet is missing. I installed kubelet and tried again. But again it got stuck in the same step.
Again I ran the installer with the two coreOS worker Node(coreOSNode1 as Controller and CoreOS Node2 as worker node). Now able to proceed to next step Connect node step. In this step we have to run a command parallel when the installer is running for starting the console. When I execute the command it shows bootkube is missing. I installed bootkube and configured it in controller(CoreOS Node1) and ran the command. while executing the cmd it search for the master component like kubernetes api server, control manager and scheduler. Since it is a worker node. These components wont be there in the worker node. So not able to start the tectonic console.
Not sure why it is not taking the master node with all components installed as controller.
"https://coreos.com/tectonic/docs/latest/install/bare-metal/index.html"
I ran three VM in the same network and configure it as per the above link. I have a doubt that should i use two plain VM for controller and worker node?
please suggest some solution.

@Selva03
Did you save your progress? Check your screenshot top right, there is a save button.
The only way that screenshot could have been produced (assets not available) is if it actually proceeded to the next screen and then went back to the previous screen like it sometimes does when your cluster is having performance issues due to insufficient metal.

Make sure all your nodes have 8Gb ram and 16Gb HDD space.
Make sure your nodes can be reached on tectonic.foo.bar as entered in the installation process
Monitor the installation closely by shelling into your controller node and watching both bootkube and kubelet logs. Those will tell you what the problem is.
Also monitor one worker node's kubelet.
If anything goes wrong ( or 1 & 2 above is not met) in the installation it is my recommendation to do a dd if=/dev/zero of=/dev/sda count=1 on your controller node and thereby restarting the entire installation process from scratch.  It's an all or nothing kind of install.

@miknano - we made sure to put a note in the bare metal documentation around the two different certs. Thanks for highlighting this confusion.
@Selva03, regarding your issue with matchbox, cc'ing @dghubble and @aaronlevy to follow up.
@pompomJuice - I addressed this on your other issue and want to make sure I address it here again: we follow a Code of Conduct at CoreOS that applies "both within project spaces and in public spaces when an individual is representing the project or its community." We take this Code of Conduct seriously and expect others to as well. Expressing frustration is absolutely understandable; providing non-constructive or derogatory feedback is not. For all future communication, please adopt a more cordial tone in order to make this friendly, respectful, and productive for everyone.
Looking forward to working with everyone here to improve the install experience for all!
Per the Code of Conduct guidelines, cc'ing @philips.

Hi,
I installed and configure latest kubelet in master node and able to proceed to next screen in tectonic console installation.

I executed the above command in the master node. Not able to start the tectonic console
core@master01 ~/bin/linux $ sudo ./bootkube start --asset-dir=/opt/bootkube/assets/
Running temporary bootstrap control plane...
I0310 11:22:12.723140    3204 config.go:527] Will report <IP_ADDRESS> as public IP address.
Waiting for api-server...
E0310 11:22:12.724458    3204 server.go:78] unable to register configz: register config "componentconfig" twice
F0310 11:22:12.725528    3204 controllermanager.go:157] listen tcp <IP_ADDRESS>:10252: bind: address already in use
[restful] 2017/03/10 11:22:12 log.go:30: [restful/swagger] listing is available at https://<IP_ADDRESS>:443/swaggerapi/
Please suggest some solution.
Thanks in advance!

@Selva03 Looks like me you ran bootkube twice on the same controller. Remember bootkube is this very primitive boostrap bash script hack that only works under extremely ideal circumstances. If any of it's steps fail, you need to trash your controller and start over.

HI,
I fixed the issue. In master node, api server,scheduler and controller were already running. When starting bootkube, It was not able to use the same port. I stopped the running services and executed the bootkube command. I attached the log file of bootkube.
bootkube errorlog.txt
Please suggest some solution
Thanks in advance!

@Selva03 You don't understand. You cannot run booktube twice ever. That's what you are doing and that is why it is failing.
Just stop bootkube and do a docker ps && rkd list and see how even if you killed previous bootkubes its remains will stay there to jam any further attempts to run it.
Re-provision your  controller and start over.

@Selva03 based on the error message: "the server cannot complete the requested operation at this time" my first thought is that there was an issue reaching the etcd server.

@aaronlevy
etcd is up and running in the controller. Then only it moves to the next screen after verification of kuberentes components. Because I tried again with the new environment, resulted in the same error.

This issue has become the combination of several folks' issues, isn't related to power on anymore, and we've changed several details about the Tectonic Installer since February. I'd like to close this and re-open another.
I'm sorry @Selva03, could I ask you to file a fresh issue about the failures you see during "connect nodes" and mentioning the specific Tectonic issue? That would be really helpful. Hopefully easier for others to search/parse for as well.
Generally if bootkube has run once and failed, your best bet is often to PXE boot your nodes afresh and start over. Can you get the new Tectonic Installer and when bootkube is starting, journal the kubelet logs
ssh<EMAIL_ADDRESS>journalctl -u kubelet -f

Journal the bootkube logs
journalctl -u bootkube -f

And inspect the pods as the cluster is coming online.
unzip assets.zip
kubectl --kubeconfig=assets/auth/kubeconfig get pods --all-namespaces

Hope that helps, looking forward to a followup.


Unable to suppress Lint warnings

I'm not being able to suppress ComposeModifierMissing lint warnings
@SuppressLint("ComposeModifierMissing")
@Composable
fun Screen(
    onAbortButtonClicked: () -> Unit,
    onContinueButtonClicked: () -> Unit
)

Both, the lint task (gradlew lint) fails and Android Studio displays it with red underlines.
Android Studio version: Electric Eel 2022.1.1 Patch 1
AGP version: 7.4.1
Compose lint version: 1.0.0
Let me know if you need any more information to reproduce

I think this may be a bug in lint itself since compose modifies the function signature, you'll need to raise this on the android issue tracker as we don't control suppressibility. We can re-open if they say otherwise.
In the meantime, a possible workaround may be to use a baseline file instead.

We ran into this also. I reported the issue and pointed to this issue for reference.

Another possible workaround is that lint does support kotlin's @Suppress annotation too, so you could try that

No dice

Hmmmm, I went to investigate that bug (https://issuetracker.google.com/issues/318532624) and I can't reproduce it.
I opened the Slack lint project, opened ModifierMissingDetectorTest, went to the first test with violations, and added @Suppress("ComposeModifierMissing") in front of the first @Composable annotation -- and when I run the test it shows that it's now suppressed the warning. I also used @android.annotation.SuppressLint("ComposeModifierMissing") and that worked too.
(By the way, in that codebase I see this --
// This mode is irrelevant to our test and totally untestable with stringy outputs
override val skipTestModes: Array =
arrayOf(TestMode.PARENTHESIZED, TestMode.SUPPRESSIBLE, TestMode.TYPE_ALIAS)
I removed TestMode.SUPPRESSIBLE and it seems to work fine here. I don't really understand the comment about "totally untestable with stringy outputs".)

Thanks for the reproduce case! I debugged this -- and discovered that this was fixed back in August. Basically, this lint check passes in the Kotlin PSI element as the context location (used for suppress directive lookup) instead of the UAST element, and that wasn't handled right (until August). If you update to 8.3.0-beta01 or later it should work.

Great. Thanks!

Awesome! Thanks all for the discussion here.

(By the way, in that codebase I see this --
// This mode is irrelevant to our test and totally untestable with stringy outputs
override val skipTestModes: Array =
arrayOf(TestMode.PARENTHESIZED, TestMode.SUPPRESSIBLE, TestMode.TYPE_ALIAS)
I removed TestMode.SUPPRESSIBLE and it seems to work fine here. I don't really understand the comment about "totally untestable with stringy outputs".)

I believe this was copied over from some internal lints, and predate knowledge of lint tests' ability to specify a specific test mode when asserting error/warning strings :). I'm slowly removing all these in #209


Search filter not working issue fixed

Done :
Search Filter issue on typing  patient number say "P 123" not working issue is fixed

Thanks!


[GOBBLIN-1689] Decouple compiler from scheduler in warm standby mode

Dear Gobblin maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA

[ ] My PR addresses the following Gobblin JIRA issues and references them in the PR title. For example, "[GOBBLIN-XXX] My Gobblin PR"

https://issues.apache.org/jira/browse/GOBBLIN-1689

Description

[ ] Here are some details about my PR, including screenshots (if applicable):
Now, when add/update flow spec, we rely on scheduler to compile the flow and return status, but in warm standby mode, where every host can accept and process request but not running the flow, we should be able to compile flow without scheduler.

Tests

[ ] My PR adds the following unit tests OR does not need testing for this extremely good reason:
Unit test

Commits

[ ] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Codecov Report

Merging #3544 (a472f9c) into master (e0d3c78) will decrease coverage by 0.00%.
The diff coverage is 58.49%.

@@             Coverage Diff              @@
##             master    #3544      +/-   ##
============================================
- Coverage     46.62%   46.62%   -0.01%
- Complexity    10456    10463       +7
============================================
  Files          2084     2084
  Lines         81620    81659      +39
  Branches       9103     9110       +7
============================================
+ Hits          38058    38075      +17
- Misses        40043    40063      +20
- Partials       3519     3521       +2

Impacted Files
Coverage Δ

.../org/apache/gobblin/service/ServiceConfigKeys.java
0.00% <ø> (ø)

...blin/service/FlowConfigV2ResourceLocalHandler.java
0.00% <0.00%> (ø)

.../java/org/apache/gobblin/runtime/api/FlowSpec.java
40.10% <0.00%> (-0.84%)
:arrow_down:

...rg/apache/gobblin/runtime/util/InjectionNames.java
0.00% <ø> (ø)

...in/service/modules/core/GobblinServiceManager.java
49.59% <0.00%> (-0.41%)
:arrow_down:

...estli/GobblinServiceFlowConfigResourceHandler.java
45.33% <ø> (ø)

...tli/GobblinServiceFlowConfigV2ResourceHandler.java
100.00% <ø> (ø)

...li/GobblinServiceFlowExecutionResourceHandler.java
29.16% <ø> (ø)

...in/service/modules/orchestration/Orchestrator.java
53.64% <40.00%> (-0.37%)
:arrow_down:

...ache/gobblin/runtime/spec_catalog/FlowCatalog.java
47.09% <66.66%> (+0.07%)
:arrow_up:

... and 13 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


introduce the board stm32l4p5g_dk disco kit

Add the STM32L4P5G_DK Discovery kit from STMicroelectronics
The MCU is the stm32L4P5 from the stm32L4plus family.
Signed-off-by: Francois Ramu<EMAIL_ADDRESS>

Wouldn't it also be interesting to add pin definitions for sleep state? More and more drivers switch to pinctrl-1

Rebase on f7cf252a8cb6cdff0f06e26db1c08fab6f1c2840
Change the dts/st/l4/stm32l4p5 serie with only stm32l4p5Xg or stm32l4p5Xe  (no stm32l4p5Xi available)

Wouldn't it also be interesting to add pin definitions for sleep state? More and more drivers switch to pinctrl-1

Yes, but I did not see pinctrl-names = "sleep"; coming (yet) on any stm32 board


In edition screens, allow to view pic full size

Often I take a pic of a local building, for instance the local chamber of commerce, then later in the day I send it to the app, and when I start typing a name I realize I don't really know the exact name that is written on the front of the building.
Was it "Chamber of Commerce of Uttar Pradesh" or "Lucknow Chamber of Commerce" or a slightly different name?
The name can be seen in the pic, but the Gallery app is busy with the UploadToCommons activity. The image is also in the background, but darkened and covered by UI elements.
My workaround in such cases is to use a different gallery app to view the pic full screen. This is a hassle, and most people don't have a second gallery app. The same problem happens in other scenarios, I often want to zoom into a detail of the picture to add the right tag or description.
So, it would be great to be able to see the pic full-screen from the title/description and the categorization screens.

Currently we can move on photo on title/description screen, so one part of this enhancement is already done.

We can not see the image on category screen though, but we can always come back to previous screen to see the picture again.

The current implementation satisfies me in terms of seeing details. What do you think @nicolas-raoul ? Should we close this issue?

Ah, yes this is solved indeed, thanks for noticing :-)


add notion of exiting the themes folder

When first trying the guide, had problems following it.
Needed to go to the main folder to be able to start the server

Hello @alvarogarcia7,
thank you for submitting this addition. I've merged your contribution as fbca53ac325324db104df5de86add3fa0baf3488 (master) and 21a1348428d60e9a1c292d2aa19772cf1e62ea4b (v0.15.docs).
Cheers,
Digitalcraftsman


Include libbinaryninjacore.so symlink in linux package

According to CMake's documentation for the find_library function:

Each library name given to the NAMES option is first considered as a library file name and then considered with platform-specific prefixes (e.g. lib) and suffixes (e.g. .so). Therefore one may specify library file names such as libfoo.a directly. This can be used to locate static libraries on UNIX-like systems.

Including a libbinaryninjacore.so -> libbinaryninjacore.so.1 symlink in the linux release lets us write
find_library(BINJA_CORE_LIBRARY binaryninjacore
    HINTS ${BINJA_BIN_DIR}
)

without resorting to more complicated build logic.

Potential solution using CMake...
find_library(BINJA_CORE_LIBRARY NAMES binaryninjacore "libbinaryninjacore.so.1"
    HINTS ${BINJA_BIN_DIR}
)

This will break if the major number for libbinaryninjacore changes though.

Finding the binary ninja core can be done conveniently using the cmake files here: https://github.com/Vector35/binaryninja-api/blob/dev/cmake/FindBinaryNinjaCore.cmake. Also, the version number 1 is unlikely to change, since we are not using it to mark versions.